Hon*_*ney 2 core-data nsmanagedobject nsmanagedobjectcontext ios nsbatchdeleterequest
我正在阅读删除/重置 Core Data 中的所有条目?.
如果我按照以下步骤操作,会得到意想不到的结果:
clearCoreDataStore再次调用(或重新启动),则不会从核心数据中检索该值我错过了什么?
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()
}
Run Code Online (Sandbox Code Playgroud)
从持久存储中删除的对象可能也在内存对象上下文中。如果是这样,则必须首先更新该内存上下文以反映删除。可以在此处找到彻底的讨论。
简而言之...
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])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
359 次 |
| 最近记录: |