ios - 如何在 Swift 中从 Core Data 中删除多个不同的数据?

标签 ios xcode swift

我有包含五个对象的核心数据。它由四个 String 和一个 NSData (UIImage) 组成。我将它们保存在核心数据中。然后加载 UIViewController ,我想从核心数据中删除它们,但我得到了不同的错误。我尝试了不同的方法,但它对我没有帮助。如何删除这些数据?

var name: String!
var text: String!
var image: UIImage!
var url: String!
var data: String!

    func deleteAll() {
    var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
    var managedObjectContext: NSManagedObjectContext = appDel.managedObjectContext!
    var coreDataName: NSManagedObject = (name as AnyObject?) as! NSManagedObject
    var coreDataImage: NSManagedObject = (image as AnyObject?) as! NSManagedObject
    var coreDataText: NSManagedObject = (text as AnyObject?) as! NSManagedObject
    var coreDataData: NSManagedObject = (data as AnyObject?) as! NSManagedObject
    var coreDataURL: NSManagedObject = (url as AnyObject?) as! NSManagedObject

    managedObjectContext.deleteObject(coreDataName)
    managedObjectContext.deleteObject(coreDataImage)
    managedObjectContext.deleteObject(coreDataText)
    managedObjectContext.deleteObject(coreDataData)
    managedObjectContext.deleteObject(coreDataURL)
    managedObjectContext.save(nil)

    buttonDelete.enabled = false
    buttonShare.enabled = false
}

}

我的核心数据文件

import Foundation
import CoreData

@objc(News)

    class News: NSManagedObject {

        @NSManaged var dateNewsCoreDataString: String
        @NSManaged var imageNewsCoreData: NSData // NSData
        @NSManaged var nameNewsCoreData: String
        @NSManaged var textNewsCoreData: String
        @NSManaged var urlNewsCoreData: String 

    }

最佳答案

我更改了代码,它对我有用。

 var detailObject: AnyObject? // It's data from FavoriteTableViewController

    func deleteAll() {
        var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
        var managedObjectContext: NSManagedObjectContext = appDel.managedObjectContext!

        var dataDelete = detailObject as! NSManagedObject

        managedObjectContext.deleteObject(dataDelete)
        managedObjectContext.save(nil)

        managedObjectContext.save(nil)
        buttonDelete.enabled = false
        buttonShare.enabled = false
    }

关于ios - 如何在 Swift 中从 Core Data 中删除多个不同的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31112751/

相关文章:

ios - iOS 8 中的 UIView 在 UITextField 编辑开始时不向上移动

ios - 整数文字存储到 'UInt' 时溢出

ios - 使用 Realm 对象保存用户

ios - 删除 firebase 中的对象

ios - 由于依赖冲突,Parse/FacebookUtils 和 FacebookCore 无法工作。

ios - 从弹出 ViewController Swift 继续

swift - 加载 Firestore 消息时如何引用正确的发件人和收件人

ios - 如何正确使用Django(Web和移动部署)

c++ - 如何在更改编译器/操作系统方面使 C++ 代码健壮

ios - 在NSMutableArray中查找多个值