【发布时间】:2018-07-13 10:47:06
【问题描述】:
我正在尝试获取 CoreData。我知道这是很多数据,我已经在使用不同的实体来保存数据。所以基本上我只需要阅读“旧数据”。问题是当我尝试获取这些数据时,我的应用程序崩溃了,因为内存爆炸了。有人知道如何获取这些数据,也许一次只能获取一半吗?
【问题讨论】:
-
fetchLimit 属性 ?
-
你有多少数据?你能显示堆栈跟踪吗?
我正在尝试获取 CoreData。我知道这是很多数据,我已经在使用不同的实体来保存数据。所以基本上我只需要阅读“旧数据”。问题是当我尝试获取这些数据时,我的应用程序崩溃了,因为内存爆炸了。有人知道如何获取这些数据,也许一次只能获取一半吗?
【问题讨论】:
我知道这是很多数据,我已经在使用不同的实体来保存数据。
我没有看到使用不同实体和内存使用之间的关系。考虑到您遵循适用于 Core Data 的内存管理规则,这根本不重要(除非您有一些奇怪的设置以及数千个关系)。
基本规则:
refreshObject:mergeChanges: 将它们变成故障。 reset 以使所有获取的托管对象无效(请注意,在调用 reset 后您不应该使用这些无效对象)。获取数据的提示:
fetchLimit 应用于 NSFetchRequest 以限制获取的对象数量。将其与fetchOffset 结合以获得数据的“窗口”。【讨论】: