NSManagedObjectContext崩溃应用程序的问题

时间:2010-10-26 22:20:20

标签: iphone core-data

我有一个基于导航的应用程序,它使用Core Data进行存储。此特定部分的架构如下:

Scene hasMany Tasks hasMany DeviceCommands

除了DeviceCommands之外,

任务还有许多其他对象(如DelayCommands等),但这超出了问题的范围(我认为)。

DeviceCommands还链接到父对象,如下所示:

设备有多个设备命令

现在,用户可以创建一个新的任务,弹出一个模态视图来选择设备。选择设备时,将使用属于设备的DeviceCommands推送tableview。选择DeviceCommand时,它会使用task.deviceCommand = device.deviceCommand将其分配给任务。出于某种原因,这只发生在应用程序的这一部分,应用程序在控制台中与以下输出崩溃:

2010-10-26 15:37:33.337 livOS4 [47226:207]严重的应用程序错误。在Core Data更改处理期间捕获到异常。这通常是NSManagedObjectContextObjectsDidChangeNotification的观察者中的错误。 * - [NSMutableArray objectAtIndex:]:使用userInfo(null)超出边界[0 .. 0]的索引35

索引35指的是UITableView和NSFetchedResultsController中DeviceCommand的索引。通过试验和错误的过程,我发现NSMutableArray是带有Devices的数组。如果我向应用添加新设备,则数组边界为[0 .. 1]。

我添加了NSManagedObjectContextObjectsDidChangeNotifications的观察者,但它在观察者收到任何内容之前崩溃。

任何人都可以帮助或提供任何解决此问题的建议吗?

2 个答案:

答案 0 :(得分:3)

我遇到与NSFetchedResultsController相同的问题。

问题消失然后我将其添加到我的viewController

- (void)dealloc
{
    self.fetchedResultsController.delegate = nil;
    self.fetchedResultsController = nil;
}

答案 1 :(得分:-2)

今天早上修好了。结果证明我是如何分配NSFetchedResultsController委托的。