我有一个基于导航的应用程序,它使用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的观察者,但它在观察者收到任何内容之前崩溃。
任何人都可以帮助或提供任何解决此问题的建议吗?
答案 0 :(得分:3)
我遇到与NSFetchedResultsController相同的问题。
问题消失然后我将其添加到我的viewController
- (void)dealloc
{
self.fetchedResultsController.delegate = nil;
self.fetchedResultsController = nil;
}
答案 1 :(得分:-2)
今天早上修好了。结果证明我是如何分配NSFetchedResultsController委托的。