我正在阅读删除/重置核心数据中的所有条目? https://stackoverflow.com/a/37348554/5175709.
如果我按照以下步骤操作,我会得到意想不到的结果:
- 调用下面的代码
- 然后在模拟器中查询一个实体,我会得到一个实体!
- 如果我打电话
clearCoreDataStore
再次(或重新启动),只有这样才不会从 core-data 中检索该值
我缺少什么?
func clearCoreDataStore() {
let entities = dataManager.persistentContainer.managedObjectModel.entities
for entity in entities {
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: entity.name!)
let deleteReqest = NSBatchDeleteRequest(fetchRequest: fetchRequest)
do {
try context.execute(deleteReqest)
} catch {
print(error)
}
}
dataManager.saveContext()
}
从持久存储中删除的对象可能也在内存中的对象上下文中。如果是这样,则必须首先更新该内存上下文以反映删除。彻底的讨论可以在这里找到 https://developer.apple.com/library/archive/featuredarticles/CoreData_Batch_Guide/BatchDeletes/BatchDeletes.html.
简而言之...
deleteRequest.resultType = NSBatchDeleteRequestResultType.resultTypeObjectIDs
let result = try context.execute(deleteRequest) as? NSBatchDeleteResult
let objectIDArray = result?.result as? [NSManagedObjectID]
let changes = [NSDeletedObjectsKey : objectIDArray]
NSManagedObjectContext.mergeChanges(fromRemoteContextSave: changes, into: [context])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)