Swift - 从数据库中删除单个记录

Posted

技术标签:

【中文标题】Swift - 从数据库中删除单个记录【英文标题】:Swift - Delete single record from database 【发布时间】:2015-04-21 07:21:01 【问题描述】:

我正在尝试从数据库中删除一条记录。

if let items=fetchedResult
            print(items.count) //this always prints "1", so it's working well
            for item:NSManagedObject in items
                println(item) //this prints the only element found. Also working well
                println(sender.view!.restorationIdentifier!) //the restorationIdentifier matches with the id from the object in the database. Also working well
                managagedContext.deleteObject(item) //<-- THIS is what is not working
                sender.view?.removeFromSuperview() //removing the view well
            
        else
            print("Could not delete \(error), \(error!.userInfo)")
        

正如 cmets 中所说,managagedContext.deleteObject(item) 行不起作用,我没有收到任何错误,它只是没有删除数据库中的对象。

我已经搜索了 2 天,但一无所获。我希望你能帮助我。

谢谢。

【问题讨论】:

删除后是否保存了上下文? 【参考方案1】:

Apple's doc 为deleteObject

指定在提交更改时应从其持久存储中删除的对象。

您需要致电context.save 以使您的更改持久化。 save documentation says that:

如果上下文的父存储是持久存储协调器,则更改将提交到外部存储

另外:this SO answer 显示了调用 save: 和管理 NSError 的详细信息

【讨论】:

以上是关于Swift - 从数据库中删除单个记录的主要内容,如果未能解决你的问题,请参考以下文章

从 plist 错误 Swift 加载

如何使用 Swift 删除 coredata 中的特定记录?

SWIFT - Coredata删除关系记录

从历史记录中删除单个提交[重复]

从核心数据中的实体中删除记录

无法使用 Swift 5 (iOS) 从 Firebase 数据库中获取和打印单个值