从CoreData删除不适用于应用程序重启

我有一个从CoreData删除NSManagedObject的函数(TestNSManagedObject的子类:

public func delete(_ test: Test,completion: @escaping (Bool) -> Void) {
    guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return completion(false) }

    let managedContext = appDelegate.persistentContainer.viewContext

    do {
        managedContext.delete(test)
        completion(true)
    } catch let error as NSError {
        print("Could not delete. \(error),\(error.userInfo)")
        completion(false)
    }
}

现在,目前看来该对象已从CoreData中删除,但是如果我重新运行应用程序,则刚刚出现的对象将再次出现。尝试删除该对象时我在做什么错了?

xiaokang1984 回答:从CoreData删除不适用于应用程序重启

您必须保存上下文以使更改(包括删除)得以保留。

do {
    try managedContext.save()
} catch let error as NSError {
    print("Unresolved error \(error),\(error.userInfo)")
}
本文链接:https://www.f2er.com/2579410.html

大家都在问