我有一个问题。 我在MyEntity中需要一个运行时属性,它的变化很大。 核心数据中有许多MyEntity(例如1000,0000); 我知道瞬态属性不会保存在磁盘中,所以这1000,000个MyEntities必须一直在内存中吗?但是有很多MyEntites, 内存足够大,可以保留1000,000个MyEntities?
答案 0 :(得分:0)
如果需要更改大量对象的值,则必须存在这些对象。无论您是否使用Core Data,都是如此。
使用Core Data,有各种选项可以控制内存 - 例如通过重新设置它们来删除单个对象,或者通过重置托管对象上下文来删除所有托管对象。但是很难说出你在这里真正要做的是什么以及为什么需要这样做。如果这个属性是瞬态的,你为什么要在你没有使用的对象上更改它,甚至没有加载到内存中?您可以加载对象,更改瞬态值,然后摆脱对象以控制内存使用。但由于瞬态属性没有得到保存,重点是什么?当你完成后,没有任何改变。为什么不完全跳过更新?