【发布时间】:2011-07-03 20:34:30
【问题描述】:
我遇到了以下问题。
我正在编写一个使用 CoreData 和 Apple 食谱示例作为指南的 RSS 阅读器。我有一个刷新按钮,可以重新下载 RSS 并使用 NSFetchRequest 验证是否有新数据。完成对元素的检查后,我会通过 NSManagedObjectContext 保存方法提交更改。
上下文保存后,tableView消失了!
然后我决定在 tableView 上调用 reloadData 以反映更改。所以,一旦 NSManagedObjectContext 被保存,我就会调用:
[self performSelectorOnMainThread:@selector(updateTableItems) withObject:nil waitUntilDone:NO];
-(void) updateTableItems {
[self.tableView reloadData];
}
此操作导致单元格在滚动时删除数据,当我弹出视图并返回时,我看到所有更改并且一切正常。
我还阅读了我应该使用 NSFetchedResultsController 的线程之一,并确保 UITableView 是委托,与上一个问题相同。
我做错了什么? 为什么我看不到更改的地方? 为什么要删除单元格的内容?
谢谢!
【问题讨论】:
-
您的表格视图显示什么数据?它是如何获取这些数据的?
-
一个单元格呈现一个 RSS 项目。所有单元格都是带有项目标题文本的简单单元格,项目是一个 NSManagedObject,在解析时被添加到实体中......
-
发布您的代码,以便我们为您提供帮助! @Simon 的问题是关于您的表数据源的 - 它是一组项目吗?您是否使用获取的结果控制器?发布您的 tableview 数据源方法和您的获取请求。
-
听起来你有两个或更多线程。您使用了多少上下文?
-
同样的事情发生在 ma 身上,我不知道为什么 - 你有没有解决这个问题?
标签: uitableview core-data ios4 nsmanagedobjectcontext