您好我正在构建一个具有以下属性的应用程序:
处理异步提取已被证明相当棘手。
目前,我们将从服务器获取的项目直接存储到Core Data中。
每次应用程序需要新项目时,我们都会查询Core Data以查找看不见的项目。
由于不断查询核心数据,我们看到了对应用程序性能的一些重大影响。
我们考虑过在内存中使用一个数组并保留一个索引,但是一旦我们不在项目中取出的异步方面被证明太复杂了,因为我们必须使用锁和其他并发措施来保持数组线程安全。
对于如何减少对Core Data的总呼叫,你们有什么建议吗?
答案 0 :(得分:0)
您需要将持久存储的行程保持在最低限度,以便获取您希望显示的合理数量的项目。核心数据在故障管理对象中非常有效,因此内存占用不应成为问题。
如果您要显示的项目已用尽但数组中仍有一些项目,请尝试获取更多内容。
此时,如果没有结果,请使用自己的托管对象上下文调度异步队列,创建新的托管对象,保存并通知主上下文,以便合并更改。
完成后,您将返回获取新项目。