【发布时间】:2011-11-04 15:15:06
【问题描述】:
在我的应用程序中,我正在显示 EKEvents 列表,并且我想在 UITableView 中显示一个月的所有事件,每个部分都包含相应的日期。好吧,这行得通,我得到了我需要的所有数据,但获取速度很慢。
问题在于跨越多天的事件。
- 假设我从 11 月 10 日到 11 月 17 日去度假。
- 我的搜索谓词的 startDate 是 11 月 1 日,endDate 是 11 月 30 日。
- 我做了一个 enumerateEventsMatchingPredicate 或 eventsMatchingPredicate,不管怎样,两者都很慢。
我得到一个数组作为回报,所有活动都在 11 月举行,还有我的假期。 但我的假期只是一个 EKEvent 对象。因此,如果我想显示事件的每月列表视图,它只会在 11 月 10 日出现一次,但为了清楚起见,我会在它发生的每一天显示它,10 日、11 日、... 17 日。
所以我要做的是,在一个月内迭代每一天并进行一次提取:-/ 这样我就可以得到在特定日期发生的正确数量的事件,但是......感觉太复杂了。
我已经将 fetch 放入 dispatch_async 中,因此 fetch 不会阻塞 UI,并且在 fetch 完成后 tableView 会重新加载并重新绘制单元格。但这仍然需要时间。没有用户友好的时间。
您如何执行这些搜索?你有任何关于如何加快搜索速度的提示,也许是一点代码 sn-p 或者可以为我指明正确的方向!?
我的问题清楚了吗? :-/
谢谢, -马丁。
【问题讨论】:
标签: iphone cocoa-touch fetch ekeventkit ekevent