我有一个显示消息列表的表视图控制器。我希望用户能够为他们的消息选择不同的排序选项。一些可能的排序选项可能是最近的,读/未读,发件人等等。
我在自己的脑海中辩论的是管理基础消息列表的正确方法。这是我目前的计划:
我有一个自定义MessageList Model对象。我将添加一个 sortedBy 属性,以便任何Controller可以检查当前的排序方法并在需要时使用该列表。 MessageList必须负责根据当前选择的排序方法正确插入新消息。
我喜欢这种方法,因为我不必制作MessageList的排序副本。它还为Controller保持简单(indexPath.row == indexOfMessageInList)。
是否有人遇到类似情况并发现了更好的方法?
答案 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];
}