NSFetchedResultsController:当对象从较高索引移动到较低索引时的异常

时间:2010-07-02 22:52:26

标签: iphone objective-c cocoa nsfetchedresultscontroller

我有一个由NSFetchedResultsController管理的表视图。我在TableViewController中使用Apple提供的样板代码。我的谓词根据名称检索对象。在使用“编辑”按钮添加/删除对象时,一切似乎都能正常工作。如果我以编程方式更改对象的名称,那么事情也可以正常,除非名称更改导致对象向上移动,在这种情况下我收到此错误:

  

严重的应用程序错误。在调用-controllerDidChangeContent:期间,从NSFetchedResultsController的委托中捕获到异常。 *** - [NSMutableArray objectAtIndex:]:索引1超出边界[0 .. 0] with userInfo(null)

假设我有三个名为A,C和D的对象。如果我将D重命名为B,则应用程序崩溃。如果我将C重命名为B,一切都很酷。

这里发生了什么?

2 个答案:

答案 0 :(得分:1)

使用Deusty的NSFetchedResultsController {{1}}子类可以帮助处理棘手的行更新和移动操作,从而导致Apple类失效,导致这些异常。

答案 1 :(得分:0)

错误消息指出异常源自您的代码,并且您使用无效索引调用objectAtIndex:。看起来你正在从数组中删除对象,然后在将其插回到数组之前尝试检索它。