我正在创建一个新闻聚合器应用程序,每4分钟提取一次xml提要。加载xml后,我通过删除数据库中的所有对象来清除所有对象,然后将新对象保存回数据库。然后我调用[self.tableViewSection reloadData];
重新加载tableView。那是我遇到问题的时候。一旦代码到达我访问新[[managedObject valueForKey:@"event_text"] description]
内容的部分,它就会失败并显示:
***因未捕获的异常而终止应用 'NSObjectInaccessibleException', 原因:'CoreData无法满足 '0x4b3f6a0的错误 ''
现在从我在顶部描述的流程开始,我觉得下次启动应用程序时,tableView会正确填充,并且我在上一个会话中获取了“新”数据。因此,当我在保存新数据后重新获取托管对象时,我认为这些数据不会损坏,但在我看来会出现问题。
另外请记住,这个应用程序在iPhone上运行正常,它的iPad就是给我这个问题。
答案 0 :(得分:0)
我找到了解决方案,你需要告诉fetchedController在重新加载新数据之前再次执行performFetch。
-(void)reloadFetchController
{
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error])
{
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
任何人都知道为什么iPhone OS3.0和iPhone之间存在差异。 3.2
答案 1 :(得分:0)
你能详细说明删除处理吗?
如果删除位于相同上下文,因为附加了获取的结果控制器,听起来好像你没有在删除后保存上下文。如果您这样做,将处理更改并且获取的结果控制器将更新,反映通过委托方法删除。