2015-10-05 50 views
1

所以我做了一個填充CoreData對象的tableview。單元本身有一個標題和兩個其他按鈕的自定義類。但DELETE方法是經典的蘋果類型:單擊後迅速刪除刪除

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? 

總之,所有的細胞都很好地加載,我可以對它們進行排序,改變他們的價值觀等等,但是,當我點擊了刷卡後刪除對離開後,單元格保持固定在滑動位置,並在控制檯上出現此錯誤:

「CoreData:error:嚴重的應用程序錯誤。在調用-controllerDidChangeContent:過程中從NSFetchedResultsController的委託中捕獲到異常:無效更新:無效在部分0中的行數。在更新之後(8),現有部分中包含的行數必須等於在更新之前(8)中包含在該部分中的行數,加或減nu從該部分插入或刪除多行(插入0個,刪除1個),加上或減去移入或移出該部分的行數(0移入,0移出)。與userInfo(null)「

之後,我無法對該單元格做任何事情。有趣的是,單元格本身和CoreData對象被刪除,因爲如果我將表視圖控制器的視圖更改爲我的主視圖,並再次向表視圖,細胞就不再出現了。起初,我以爲我只需要調用

 tableView.reloadData()  

方法,但沒有奏效。 請注意,這不會導致飛機墜毀,但如果我再次刪除刪除按鈕,毫無疑問,它會因爲刪除對象成功刪除而崩潰。

任何標識eas在這裏?

+0

這是在iOS 9上? – quellish

+0

是的,錯誤不是在iOS 8上忘了提及它... – Petar

回答

1

UI與Core Data分開。核心數據是持久層,您希望顯示的數據在UI中被鏡像。

您正在刪除核心數據中的數據,但未正確更新用戶界面。

如果您使用的是NSFetchedResultsController,那麼您在委託方法中出現錯誤。使用調試器和斷點來找出爲什麼你不能從UI中正確刪除行。

如果您未使用NSFetchedResultsController,那麼您的刪除表格視圖通知不正確。

+0

我確實嘗試了斷點調試過程,但是這並沒有給我任何有用的信息,因爲在iOS 8和Swift之前的所有步驟都遵循了相同的步驟1.2 – Petar

+0

你在使用NSFetchedResultsController嗎?顯示錯誤的代碼,以便有人可以看到發生了什麼。這個問題是否與iOS 8一起出現,或者當您切換到swift? –