【问题标题】:Speed up fetch of EKEvents加快 EKEvents 的获取
【发布时间】: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


    【解决方案1】:

    获取速度很慢,尤其是在有很多重复事件的情况下。我在我的应用程序中所做的是只获取一次,并将全天多跨天事件解析为块。我抽象了事件:我创建了“日期”类,它具有 NSString 属性,可用作表格视图中的部分标题,其 ivars 之一是具有匹配“事件”的数组。 “事件”不是 EKEvents,而是我的类,我将所需的属性从 EKEvents 复制到该类。从跨越一整天的多天 EKEvent 我创建相应的“事件”。解析速度非常快 - 从获取的重复 EKEvents 中获取属性时会变慢。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 1970-01-01
      • 2013-03-27
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多