删除核心数据条目不起作用

时间:2015-07-31 16:45:53

标签: swift core-data xcode6

我尝试使用Swift删除核心数据条目。我还使用获取的结果控制器来加载条目。这是我的代码:

    let context = self.fetchedResultsController.managedObjectContext
    let fetchRequest = NSFetchRequest(entityName:"Person")
    fetchRequest.predicate = NSPredicate(format: "name = '\(item)'")
    var error : NSError?

    if let results = context.executeFetchRequest(fetchRequest, error:&error),
       let managedObject = results.first as? NSManagedObject {
       context.deleteObject(managedObject)
    }

我不知道为什么,但是如果这段代码运行,那么该条目将从表格中删除,但如果我重新启动该应用程序,该表格将包含我已删除的任务。

2 个答案:

答案 0 :(得分:1)

这只会从托管对象上下文(用于进行更改的暂存器)中删除该对象。要将托管对象上下文中完成的任何操作保存到底层数据库,您需要先将其保存:

 if let results = context.executeFetchRequest(fetchRequest, error:&error),
       let managedObject = results.first as? NSManagedObject {
       context.deleteObject(managedObject)
    }

let saveError: NSError?
context.save(&saveError)

答案 1 :(得分:1)

你需要保存。

Swift 1.2

format.json { render status: :created, json: @test }

Swift 2

context.save(nil)