我有三個控制器,一個顯示所有數據,第二個視圖刪除項目,第三個編輯。除了刪除NSManagedObject
之外,所有的工作都很好,目前該應用程序崩潰的錯誤是;刪除NSManagedObject時出錯
無法識別的選擇發送到實例0x7f945b56a680 2015年8月17日 18:35:08.835 AppTest [8008:435289] ***終止應用程序由於未捕獲 異常 'NSInvalidArgumentException',原因: 「 - [的NSManagedObjectContext刪除:]:無法識別的選擇發送到 實例...類型NSException的未捕獲的異常 (LLDB)
爲什麼發生這個錯誤,以及如何終止我可以UINavigationController
和popToRootContro內刪除NSManagedObject
ller繼續回到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
方法的問題,但使用delete方法,它應該已經deleteObject()
。現在我知道我看到的問題上有很多問題。
我不知道,這個編譯的。 NSManagedObjectContext沒有'delete()'方法,只有'deleteObject()'。 –
實際上'delete'方法是[UIResponderStandardEditActions](https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIResponderStandardEditActions_Protocol/index.html)協議的一部分,它被定義爲「NSObject」類別(「非正式協議」)。這解釋了代碼編譯的原因。 「 –