1

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

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

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

这里发生了什么?

4

2 回答 2

1

使用 Deusty 的SafeFetchedResultsController子类NSFetchedResultsController可以帮助处理棘手的行更新和移动操作,这些操作会绊倒 Apple 的类,从而导致这些异常。

于 2010-07-02T23:47:54.573 回答
0

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

于 2011-07-19T17:18:52.240 回答