簡體   English   中英

從CoreData刪除對象(錯誤)

[英]Delete Object from CoreData (error)

我想從核心數據中刪除一個對象。 我嘗試了此代碼,但無法正常工作。 怎么了? 我正在使用Swift和Xcode 6.1.1。

碼:

    let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext
    var daten = [TaskModel]() //CoreData Entity

    managedObjectContext!.deleteObject(daten[indexPath.row])
    appDelegate.saveContext()
    let fetchRequest = NSFetchRequest(entityName: "TaskModel")
    daten = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as [TaskModel]
    tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Right)

daten是一個空數組。

因此, daten[x]將崩潰。

在您的情況下, xindexPath.row ,但是它將崩潰並帶有任何值。
如果嘗試按索引訪問空數組的元素,則會收到上述錯誤。

要從獲取的結果控制器中獲取一個對象並將其刪除,

let task = self.fetchedResultsController.objectAtIndexPath(indexPath) as TaskModel
self.fetchedResultsController.managedObjectContext.deleteObject(task)
self.fetchedResultsController.managedObjectContext.save(nil)

從Xcode模板獲取的結果控制器的標准實現將自動更新表格視圖,您甚至可以免費獲得動畫。

如果您沒有使用NSFetchedResultsController ,請在此處停止並進行重構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM