1

我正在使用 Core Data 和 KVO 来查找值的更改以触发保存到数据存储。我有一个与搜索挂钩的表格视图NSFetchedResultsController。当搜索发生变化时,会在按下 Search 按钮时创建一个新的结果控制器。当用户在结果表视图中选择项目时,用户会进入详细视图并可以进行编辑。

这就是我遇到问题的地方。当用户在我所做的单独 UIControl 中进行更改时,会通知详细视图并且可以使用NSFetchedResultsController它从表格视图将我推送到视图堆栈时记住的信息来获取NSManagedObjectContext并进行保存。当我这样做时,有时会收到以下错误:

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'

我发现当我进行搜索并且不在表格顶部的对象被移动到顶部时,往往会发生这种情况。我隐约知道我的脑后可能出了什么问题,但希望能提供有关如何解决此问题的任何指示。

4

1 回答 1

1

我发现出了什么问题。我忘了取消旧NSFetchedResultsController的代表,也忘了释放说NSFetchedResultsController。我的UITableView子类还响应了NSFetchedResultsController通过代表的更新,并导致了奇怪的调用。

于 2010-07-09T00:43:53.400 回答