删除NSManagedObject

时间:2015-08-17 17:40:26

标签: ios swift core-data

我有三个控制器,一个显示所有数据,第二个是视图删除项目,第三个是编辑。一切正常,除了删除NSManagedObject,目前应用程序崩溃时出现错误;

  

无法识别的选择器发送到实例0x7f945b56a680 2015-08-17   18:35:08.835 AppTest [8008:435289] ***由于未被捕获而终止应用程序   异常'NSInvalidArgumentException',原因:   ' - [NSManagedObjectContext delete:]:发送到的无法识别的选择器   实例...以NSException类型的未捕获异常终止   (LLDB)

为什么会出现此错误?如何删除NSManagedObject中的UINavigationController和popToRootController以切换回collection view

这是我在editViewController;

中一直试图做的事情
let context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

@IBAction func remove(sender: AnyObject) {

    context?.delete(self.selectedObject)

    var error: NSError?
    context?.save(&error)

    self.navigationController?.popToRootViewControllerAnimated(true)

}

更新:我使用popToRootViewController方法时遇到问题,但使用的删除方法应该是deleteObject()。现在我知道我看到的问题有很多问题。

1 个答案:

答案 0 :(得分:3)

您想要deleteObject(),而不是delete(),因为delete是NSObject上未实现的扩展。

您的代码应为:

context?.deleteObject(self.selectedObject as NSManagedObject)