概述
-
我有一个使用核心数据(
NSFetchedResultsController
)和表格视图的iOS项目。我有一个名为"joingDate"的字段。 -
我在表视图单元格上有一组标签来表示数据。
-
如果加入日期是今天/明天,那么我想显示为"今天"或"明天",而不是指定实际日期。
我 只是在想,我会检查 lastCheckedDate(上次检查日期的时间),如果超过一天,那么我将不得不更新具有加入日期和"今天"或"明天"的行中的所有标签。
在数据库中,"JoiningDate"将存储为日期,只有标签需要以特定格式显示"今天"/"明天"/日期。
我已经实现了以下方法,其中标签"joingDateComments"根据其当前日期进行更新。
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
问题
注意 - 我正在使用NSFetchedResultsController
- 更新所有具有今天/明天
joiningDate
的行标签的最佳方法是什么? - 我应该重新加载表中的所有记录吗?(但这只会影响几行。
- 我应该遍历所有索引并检查和更新。我不确定这是否有效,因为我正在使用
NSFetchedResultsController
. - 我是否应该使用瞬态数据,以便我可以查询数据库并获取具有"JoingDate"的记录,如今天/明天并更新瞬态字段
JoingDateComments
,以便这些记录将由NSFetchedResultsController 自动刷新
答:
请浏览安德鲁的评论。
user1046037,
这真的不是一个核心数据问题,而是一个UITableView问题。大多数内容都以-tableView:cellForRowAtIndexPath:
方法处理。在那里,您将选择如何表示单元格。另一个地方是当NSFetchedResultsController
用更改的对象调用您时。(标准核心数据表视图控制器为您编写此样板。换句话说,您不必遍历所有对象。如果要更精细地控制这些单元格的更新时间,可以侦听"已保存"通知。然后在表视图中查询可见单元格数组。然后,可以使用单元格索引路径来更新单元格内容。
安德鲁