iPad --- [self.tableViewSection reloadData] 时的 managedObject 问题
Posted
技术标签:
【中文标题】iPad --- [self.tableViewSection reloadData] 时的 managedObject 问题【英文标题】:iPad --- managedObject problem when [self.tableViewSection reloadData] 【发布时间】:2010-05-20 06:37:48 【问题描述】:我正在创建一个新闻聚合器应用程序,它每 4 分钟获取一次 xml 提要。加载 xml 后,我通过删除数据库中的所有对象来清除所有内容,然后将新对象保存回数据库。然后我调用[self.tableViewSection reloadData];
重新加载tableView。那是我遇到问题的时候。一旦代码到达我访问新的[[managedObject valueForKey:@"event_text"] description]
内容的部分,它就会失败并显示:
*** 由于未捕获的异常而终止应用程序 'NSObjectInaccessibleException', 原因:'CoreData 无法满足 '0x4b3f6a0 的故障 ''
现在从我在上面描述的流程来看,我觉得很奇怪,下次我启动应用程序时 tableView 会正确填充,其中包含我在上一个会话中获取的“新”数据。所以不是数据损坏了,但在我看来,当我在保存新数据后重新获取 managedObject 时出现了问题。
还要记住,这个应用程序在 iPhone 上运行良好,是 iPad 给了我这个问题。
【问题讨论】:
【参考方案1】:我找到了解决方案,你需要告诉 fetchedController 在重新加载新数据之前再次执行一次 performFetch。
-(void)reloadFetchController
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error])
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
任何人都知道为什么这在 iPhone OS3.0 和 3.2 之间有所不同
【讨论】:
【参考方案2】:能否详细说明删除处理?
如果删除是在 与附加的获取结果控制器相同的上下文上,听起来您没有在删除后保存上下文。如果您这样做了,将处理更改并更新获取的结果控制器,通过委托方法反映删除。
【讨论】:
以上是关于iPad --- [self.tableViewSection reloadData] 时的 managedObject 问题的主要内容,如果未能解决你的问题,请参考以下文章
Ipad图标大小Ipad设置ios 5-7 29pt 1x 2x - iPad聚光灯ios 7 40 pt - iPad app ios 7 76 pt [关闭]