Ios 如何使用NSInMemoryStoreType清理NSPersistentStoreCoordinator的内存中对象图?
我正在为Ios 如何使用NSInMemoryStoreType清理NSPersistentStoreCoordinator的内存中对象图?,ios,core-data,memory-management,nspersistentstore,Ios,Core Data,Memory Management,Nspersistentstore,我正在为NSPersistentStoreCoordinator使用NSInMemoryStoreType来维护内存中的实体和关系,因为我不想将其写入磁盘 因此,我计划在某一点清理内存中的对象图,因为核心数据对象引用仍在内存中,所以应用程序内存不断增加 如何从内存对象图中删除/重置/删除整个核心数据实体和关系,以清理应用程序内存使用情况 是否有任何优化的方法来处理nsimemorystoretype并在需要时清理内存 请注意:我的应用程序的部署目标是iOS 8.0及以上版本。因此,清理API也应
NSPersistentStoreCoordinator
使用NSInMemoryStoreType
来维护内存中的实体和关系,因为我不想将其写入磁盘
因此,我计划在某一点清理内存中的对象图,因为核心数据对象引用仍在内存中,所以应用程序内存不断增加
如何从内存对象图中删除/重置/删除整个核心数据实体和关系,以清理应用程序内存使用情况
是否有任何优化的方法来处理nsimemorystoretype
并在需要时清理内存
请注意:我的应用程序的部署目标是iOS 8.0及以上版本。因此,清理API也应该适用于iOS 8目标
谢谢 只需像在任何核心数据设置中一样删除实体。我找到了一种清理内存存储上下文的方法。这个解决方法是从内存中的对象图中清除一些内存,而不是全部
if inMemoryManagedObjectContext != nil{
if let stores = inMemoryManagedObjectContext.persistentStoreCoordinator?.persistentStores{
for store in stores{
do{
try inMemoryManagedObjectContext.persistentStoreCoordinator?.remove(store)
}catch{
print("Cleanup InMemoryManagedObjectContext error;\(error)")
}
}
}
inMemoryManagedObjectContext = nil
}
谢谢Jon Rose:如果我必须删除所有实体,它会给性能带来问题,因为我有更多的实体。此外,我不确定删除实体是否会立即清理内存
感谢Sandeep Bhandari:PersistentContainer适用于iOS 10及以上版本,我的应用程序应该支持iOS 8
此外,上下文重置不会对内存清理产生任何影响。如果有任何其他方法可以在内存上下文/persistentStoreCoordinator中进行清理,请告诉我
谢谢