如何将表视图连接到可排序数据源

时间:2009-05-13 17:27:13

标签: iphone cocoa-touch

我有一个显示消息列表的表视图控制器。我希望用户能够为他们的消息选择不同的排序选项。一些可能的排序选项可能是最近的,读/未读,发件人等等。

我在自己的脑海中辩论的是管理基础消息列表的正确方法。这是我目前的计划:

我有一个自定义MessageList Model对象。我将添加一个 sortedBy 属性,以便任何Controller可以检查当前的排序方法并在需要时使用该列表。 MessageList必须负责根据当前选择的排序方法正确插入新消息。

我喜欢这种方法,因为我不必制作MessageList的排序副本。它还为Controller保持简单(indexPath.row == indexOfMessageInList)。

是否有人遇到类似情况并发现了更好的方法?

1 个答案:

答案 0 :(得分:0)

计划看起来非常可靠,我要做的是为sortedBy实现一个自定义setter,每当调用它时,只要有实际的更改,就会调用[tableView reloadData]。像这样:

- (void) setSortedBy:(SEL)someSortMethod {
  # check if the sort method is new or not
  # perform operations on list to sort it
  sortedBy = someSortMethod;

  [self.tableView reloadData];
}