5

您好我目前正在构建一个具有以下属性的应用程序:

  1. 使用 Core Data 进行存储
  2. 有一个每次显示一个项目的提要
  3. 如果项目不足,应用程序将从服务器异步调用 fetch

处理异步获取已被证明是相当棘手的。

目前,我们将从服务器获取的项目直接存储到 Core Data 中。

每次应用程序需要一个新项目时,我们都会在 Core Data 中查询一个看不见的项目。

由于不断查询核心数据,我们看到了对应用程序性能的一些重大影响。

我们曾考虑在内存中使用 Array 并为其保留索引,但一旦我们用完项目,异步获取方面被证明过于复杂,因为我们必须使用锁和其他并发措施来保证数组线程的安全。

你们对如何减少对 Core Data 的总调用次数有什么建议吗?

4

1 回答 1

0

您需要将到持久存储的行程保持在最低限度,以便获取您希望显示的合理数量的项目。Core Data 在故障管理对象方面非常有效,因此内存占用不应该成为问题。

当您用完要显示的项目但数组中仍有一些剩余时,请尝试获取更多。

此时,如果您没有得到任何结果,请使用自己的托管对象上下文调度一个异步队列,创建新的托管对象,保存并通知主上下文,以便它可以合并更改。

完成后,您将返回获取新项目。

于 2013-03-07T07:01:27.643 回答