我在删除时得到断断续续的结果。有时对象会被删除,但大多数时候当我重新启动项目甚至直接在删除代码之后,商店仍然会提取对象的实例。我通过 AppDelegate
中对 managedObjectContext
的引用进行删除,并确保保存删除后的内容。
if let object = getById(id, context: context){
context.deleteObject(object)
do{
print("Deleteing object by id")
try context.save()
}catch{
print("Unable to delete object for some reason")
}
}
如果我在成功保存删除后立即再次运行具有相同 ID 的 getById()
,它会再次找到该对象。错误 block 永远不会触发,所以我认为这里还有其他问题。有什么想法吗?
最佳答案
我认为您在进入 do 循环之前删除了找到的对象,而 context.save() 正在将其保存回来。这可能是您在查找对象时未触发错误 block 的原因。
尝试 -
if let object = getById(id, context: context) {
do {
try context.deleteObject(object)
try context.save() (I am still not sure if this statement should be there!!!)
print()
}catch{
print()
}
}
希望对您有所帮助。
关于ios - 核心数据删除只能间歇性工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796598/