【发布时间】:2010-09-08 15:48:05
【问题描述】:
在几个小时后的演示之前迫切需要帮助...应用程序昨晚在我的测试设备上运行良好。今天早上添加了一些数据(像往常一样),现在我在保存操作期间收到此错误:
Serious application error. Exception was caught during Core Data change processing:
*** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value
(key: _ContentChange_OldIndexPathKey) with userInfo (null)
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '*** -[NSCFDictionary setObject:forKey:]: attempt to insert nil value
(key: _ContentChange_OldIndexPathKey)'
有趣的是,如果我将我的 sqlite 文件下载到我的 Mac 并将其输入到模拟器中,一切都会正常工作。崩溃仅发生在测试设备上。
有什么想法吗?
【问题讨论】:
-
从表面上看,错误消息看起来相当有说服力。你确定这两个环境之间的一切都是一样的吗?
-
您正在尝试将
nil插入字典。该值 (userInfo) 来自哪里? -
更新:我修复了它,但我不知道为什么。此错误发生在包含 UITableView 和 NSFetchedResultsController 的 UIViewController 中。它通常是我的 NSFetchedResultsController 的委托,并实现表更新的适当方法。我有一种感觉,这是导致问题的方法之一。所以我注释掉了使 ViewController 成为 NSFetchedResultsController 的委托的行,并且一切正常。这意味着某些功能将不起作用(基于模型更改的表格更新),但我可以在演示中使用它。
-
ed94133:你能在调试器下的设备上运行你的应用程序吗?如果是这样,请查看有关尝试插入的信息。
标签: iphone cocoa-touch exception core-data