我有一個使用核心數據進行存儲的基於導航的應用程序。這個特定部分的架構如下:NSManagedObjectContext崩潰應用程序的問題
場景的hasMany任務的hasMany DeviceCommands
任務也有很多其他的對象除了DeviceCommands(如DelayCommands等),但是這已經超出了問題的範圍(我想) 。
DeviceCommands還鏈接到父對象如下:
設備的hasMany DeviceCommands
現在,用戶可以創建一個新的任務,即彈出一個模態視圖來選擇設備。當您選擇一個設備時,將使用屬於該設備的DeviceCommand來推送tableview。當您選擇一個DeviceCommand時,它將其分配給task.deviceCommand = device.deviceCommand
的任務。出於某種原因,這隻發生在應用程序的這一部分,該應用程序崩潰與控制檯中的以下輸出:
2010-10-26 15:37:33.337 livOS4 [47226:207]嚴重的應用程序錯誤。核心數據更改處理期間捕獲異常。這通常是NSManagedObjectContextObjectsDidChangeNotification的觀察者中的一個錯誤。 * - [NSMutableArray的objectAtIndex:]:索引35超出範圍[0 .. 0]與USERINFO(空)
指數35指DeviceCommand在的UITableView和NSFetchedResultsController索引。通過試驗和錯誤的過程,我發現NSMutableArray是帶有設備的數組。如果我添加一個新的設備到應用程序,數組邊界是[0 .. 1]。
我添加了NSManagedObjectContextObjectsDidChangeNotifications的觀察者,但它在觀察者收到任何東西之前崩潰了。
任何人都可以幫助或提供任何建議來解決這個問題嗎?
我知道這是舊的文章,但你能準確地對你做了什麼擴展? – chris 2011-08-13 07:13:13
爲什麼這個答案被upvoted? – Martin 2015-06-05 09:23:05