0

概述

  • 我有一个使用核心数据(NSFetchedResultsController)和表格视图的 iOS 项目。我有一个名为“joingDate”的字段。

  • 我在表格视图单元格上有一组标签来表示数据。

  • 如果加入日期是今天/明天,那么我想显示为“今天”或“明天”,而不是指定实际日期。

  • 我只是在想,我会检查 lastCheckedDate (上次检查日期的时间),如果超过一天,那么我将不得不更新行中的所有标签,这些标签具有加入日期和“今天”或“明天”。

  • 在数据库中,“JoiningDate”将存储为日期,只有标签需要以特定格式显示“今天”/“明天”/日期。

我已经实现了以下方法,其中标签“joingDateComments”根据其当前日期进行更新。

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath

问题

注意 - 我正在使用NSFetchedResultsController

  1. 更新所有具有joiningDate今天/明天的行标签的最佳方法是什么?
  2. 我应该重新加载表中的所有记录吗?(但这只会影响几行。)
  3. 我是否应该遍历所有索引并检查和更新。我不确定这是否可行,因为我正在使用NSFetchedResultsController.
  4. 我是否应该使用瞬态数据,以便我可以查询数据库并获取今天/明天具有“JoingDate”的记录并更新瞬态字段JoingDateComments,以便 NSFetchedResultsController 自动刷新这些记录

回答:

请仔细阅读安德鲁的评论。

4

1 回答 1

2

用户1046037,

这真的不是核心数据问题,而是 UITableView 问题。大多数事情都在该-tableView:cellForRowAtIndexPath:方法中处理。在那里,您将选择如何表示单元格。另一个地方是当NSFetchedResultsController你用改变的对象打电话给你的时候。(标准的核心数据表视图控制器为您编写了这个样板。)换句话说,您不必遍历所有对象。如果您希望对这些单元格的更新时间进行更精细的控制,您可以收听确实保存通知。然后在 tableView 中查询可见单元格的数组。然后可以使用单元格索引路径来更新单元格内容。

安德鲁

于 2012-05-27T14:45:40.197 回答