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 型号的 UI 缩放?

ipad2020屏幕多大尺寸

Ipad图标大小Ipad设置ios 5-7 29pt 1x 2x - iPad聚光灯ios 7 40 pt - iPad app ios 7 76 pt [关闭]

如何在多台 iPad 上安装 iPad 应用程序?

CSS媒体查询仅针对iPad和iPad?

iPad、iPad 2 上的边框半径问题