Ios 删除核心数据中的项目
在调用Ios 删除核心数据中的项目,ios,swift,core-data,Ios,Swift,Core Data,在调用deleteData()方法之前,我已经验证了我的核心数据中有两个实例。现在我需要删除一个。我引用此项删除我的核心数据 我通过let person=people[0]将第一个NSManagedObject实例复制为!NSManagedObject通过此代码,但应用程序在此行终止managedContext.delete(person) 由于未捕获的异常“NSInvalidArgumentException”,所面临的错误是终止应用程序,原因:'-[NSManagedObjectContex
deleteData()
方法之前,我已经验证了我的核心数据中有两个实例。现在我需要删除一个。我引用此项删除我的核心数据
我通过let person=people[0]将第一个NSManagedObject
实例复制为!NSManagedObject
通过此代码,但应用程序在此行终止managedContext.delete(person)
由于未捕获的异常“NSInvalidArgumentException”,所面临的错误是终止应用程序,原因:'-[NSManagedObjectContext delete::]:无法识别的选择器发送到实例0x7FE28092E0'
func deleteData() {
var people = [Particulars]()
let fetchRequest = NSFetchRequest(entityName: "Particulars")
let appDel = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDel.managedObjectContext
do {
people = try managedContext.executeFetchRequest(fetchRequest) as! [Particulars]
do {
let person = people[0] as! NSManagedObject
managedContext.delete(person)
try managedContext.save()
} catch let error as NSError {
print("Could not delete data \(error)")
}
} catch let error as NSError
{
print("Could not fetch data \(error)")
}
}
正确的调用不是delete
,而是NSManagedObjectContext
的deleteObject
还要注意的是,写person.first
比写people[0]
更具可读性,但这当然是一个品味问题
我认为让person=people[0]作为一个例子!NSManagedObject
有问题,因为
。首先
细节
到NSManagedObject
的向下转换也没有意义。您在获取搜索结果时已经执行了强制转换试试
managedContext.deleteObject(person)
我是swift新手,所以我遵循了教程的教学方法。谢谢你的消息,我听到了。有些教程错误百出。