【发布时间】:2013-07-08 14:14:43
【问题描述】:
我在使用 NSfetchedResultsController 填充的 iOS 应用程序中有一个 UITableView。当用户只是查看单元格而不滚动或与应用程序交互时,可能会有服务器发送的外部数据包影响单个单元格(例如更改某种状态或标题),在这种情况下我想要单元格自动更新。目前显示修改后的单元格的唯一方法是滚动 UITableView 以便调用 cellForRowAtIndexPath 来更新单元格。
任何想法如何实现?我尝试了几种方法,但似乎都没有。
更新 1:
我还尝试调用 configureCell,它基本上会修改单元格以更新其标题,只要我从服务器收到数据包并构建单元格 indexPath。通过使用断点,我看到单元格的标签已更改,但未反映在屏幕中。
更新 2: 我注意到在表格中加载单元格后,我的 tableView 引用变为空。我不知道为什么会发生这种情况,但它会使 reloadData 无用。
【问题讨论】:
-
[self.tableView reloadRowsAtIndexPaths:@[indexPathOfYourCell] withRowAnimation:UITableViewRowAnimationNone];
-
我试过了..这是很常见的建议。
-
你使用 NSFetchedResultsController 委托方法吗?如果不是,为什么不呢?听起来您尝试自己管理更改的属性。
-
你是指哪些方法?
-
主要是
controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:,但它们都是获得工作NSFetchedResultsControllerDelegate所必需的。
标签: iphone ios objective-c core-data nsfetchedresultscontroller