1

我正在使用Core Data和KVO查找值中的更改以觸發保存到數據存儲。我有一個表格查看與搜索掛鉤到NSFetchedResultsController。當搜索改變時,按下搜索按鈕會產生一個新的結果控制器。當用戶在結果表視圖中選擇一個項目時,用戶輸入詳細視圖並可以進行編輯。核心數據,KVO和NSInternalInconsistencyException

這是我遇到問題的地方。當用戶在我製作的單獨UIControl中進行更改時,會通知詳細視圖,並可以使用從表視圖將我推入視圖堆棧以獲取NSManagedObjectContext並進行保存時記得的NSFetchedResultsController。當我這樣做,我有時會收到以下錯誤:

Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. no object at index 89 in section at index 0 with userInfo (null) 
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no object at index 89 in section at index 0' 

我發現,這往往當我做了搜索和對象是上不了檯面的頂部發生移動到頂部。我隱約知道我腦後可能會出現什麼問題,但希望有關如何解決這個問題的指點。

回答

1

我想通了什麼是錯的。我忘了解除舊的NSFetchedResultsController的代表,並忘記發佈NSFetchedResultsController。我的UITableView子類也通過代表響應了對NSFetchedResultsController的更新,並導致了奇怪的呼叫。

+0

很高興看到你解決了這個問題。這個問題很常見,容易忘記:) – 2010-07-09 01:43:56