【问题标题】:delete core data entry doesn't work删除核心数据条目不起作用
【发布时间】:2015-07-31 16:45:52
【问题描述】:

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

    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)
    }

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

【问题讨论】:

    标签: swift core-data xcode6


    【解决方案1】:

    这只会从托管对象上下文中删除对象(这是进行更改的暂存器)。要将托管对象上下文中所做的任何事情持久保存到底层数据库,您需要先将其保存:

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

    【讨论】:

      【解决方案2】:

      您需要保存。

      Swift 1.2

      context.save(nil)
      

      斯威夫特 2

      do { try context.save() } catch {}
      

      【讨论】:

        猜你喜欢
        • 2016-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多