我有包含五个对象的核心数据
。它由四个 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/