我正在使用Core Data和KVO查找值的更改以触发对数据存储的保存。我有一个表格视图,搜索链接到NSFetchedResultsController
。当搜索更改时,按下“搜索”按钮会生成新的结果控制器。当用户在结果表视图中选择项目时,用户输入详细信息视图并进行编辑。
这是我遇到问题的地方。当用户在我所做的单独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'
我发现当我进行搜索时会发生这种情况,并且不在桌面顶部的对象会移到顶部。我隐约知道在我的脑海中可能出现了什么问题,但我会很感激如何解决这个问题。
答案 0 :(得分:1)
我弄清楚出了什么问题。我忘了取消旧的NSFetchedResultsController
代表,也忘了释放NSFetchedResultsController
。我的UITableView
子类也通过委托回复NSFetchedResultsController
的更新,并导致进行奇怪的调用。