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