1

所以这就是我面临的问题。我有一个由 NSFetchedResultsController 支持的 UITableView。现在在应用程序启动时,我更新了数据源,这涉及进行多个网络调用和处理传入的数据。如果用户在更新数据源时删除了其中一行,则在异步网络回调中访问已删除的数据会使应用程序崩溃。我该如何优雅地处理这种情况?

4

2 回答 2

0

isDeleted在访问对象之前尝试调用它们。

于 2012-10-22T18:42:29.410 回答
0

如果您使用 NSFetchedResultsController 的内存跟踪,您将能够在记录从持久存储中删除之前从界面中删除记录。确保读取 NSFetchedResultsController 的委托的 NSFetchedResultsChangeType,并确保将后台线程(正在删除对象的位置)的 NSManagedObjectContext 与读取记录的 NSManagedObjectContext 合并。

确定对象是否已被删除的一个好方法是使用 existingObjectWithID:error: 检查具有当前对象 ID 的现有对象。这在使用没有 NSFetchedResultsController 的 NSManagedObjects 时非常有用。

于 2012-10-22T18:55:27.633 回答