iphone - 加快 EKEvents 的获取速度

标签 iphone cocoa-touch fetch ekeventkit ekevent

在我的应用程序中,我显示 EKEvents 列表,我想在 UITableView 中显示一个月的所有事件,每个部分包含各自的日期。嗯,这可行,我得到了我需要的所有数据,但获取速度非常慢。

问题在于事件持续多天。

  • 假设我将于 11 月 10 日至 17 日休假。
  • 我的搜索谓词的开始日期为 11 月 1 日,结束日期为 11 月 30 日。
  • 我执行 enumerateEventsMatchingPredicate 或 eventsMatchingPredicate,无论如何,两者都很慢。

我得到了一个数组作为返回,其中包含 11 月份发生的所有事件以及我的假期。 但我的假期只是一个 EKEvent 对象。因此,如果我想显示事件的每月 ListView ,它只会在 11 月 10 日出现一次,但为了清楚起见,我会在事件发生的每一天(10 日、11 日……17 日)显示它。

所以我所做的是,迭代一个月中的每一天并进行获取:-/这样我就可以获得特定日期发生的正确事件数量,但是......感觉很复杂。

我已经将获取放入dispatch_async中,因此获取不会阻塞UI,并且在获取完成后,tableView将被重新加载并重新绘制单元格。但这仍然需要时间。没有用户友好的时间。

您如何执行这些搜索?您对如何加快搜索速度有什么建议吗?也许是一些代码片段,或者可以为我指明正确的方向!?

我的问题清楚吗? :-/

谢谢, -马丁。

最佳答案

获取速度很慢,尤其是在存在大量重复事件的情况下。我在应用程序中所做的就是仅获取一次,并将全天多跨日事件解析为 block 。我抽象了事件:我创建了“date”类,它具有可用作 TableView 中的部分标题的 NSString 属性,并且它的 ivars 之一是具有匹配“事件”的数组。 “事件”不是 EKEvents,而是我的类,我从 EKEvents 复制所需的属性。从跨越单个全天的多天 EKEvent 我创建相应的“事件”。解析速度非常快 - 当从获取的重复 EKEvent 获取属性时速度会变慢。

关于iphone - 加快 EKEvents 的获取速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8011500/

相关文章:

iphone - 如何获得 UILabel (UITextView) 自动调整字体大小?

iPhone 应用程序在下载更新后崩溃

php - 关联查询结果数组中的第一个值错误

Javascript 获取附加数据到 HTML 并覆盖

iphone - Storyboard中自定义单元格中的 UIActivity 指示器

iPhone iOS 如何将 Class 对象与另一个类对象进行比较?

ios - 解析包含 'T' 和 + 时区偏移量的日期字符串

iphone - 试图复制 iPhone 键盘按钮

iphone - iPhone 应用程序上的图形

php - 使用 if 语句显示 JOIN 的多个结果