我提供了对包含数据项的NSArray的引用。在用作表视图数据源的Custom View控制器中,我解释每个项目并将其显示为一个单元格。
到目前为止,一切都很好。

现在,我的同事们要求实现一个过滤器,该过滤器将基于项目属性之一的值。
该属性具有枚举值(其中4个)。因此,当我应用过滤器时,我应该只能看到与特定值匹配的项目。
我的问题是我应该如何处理这种数据过滤。

1)是否应该将_data私有变量设置为指向原始数据源,然后重写“ data”属性getter以考虑过滤?

2)我应该在控制器内部生成一个单独的filteredData数组吗?
3)还有其他方法吗?

注意> coredata + fetched resultscontr。毫无疑问。项目数量永远不会超过150-200。

最佳答案

我会选择第二个。拥有filteredDatasource更为方便。这样,您不仅可以知道应该显示的单元格,还可以知道它们的数量等等。而且,如果将来要对它们进行排序并使用节,您将更加灵活。

例如,当您使用过滤后的数据源实现内部多次调用的方法– tableView:numberOfRowsInSection:时,不必遍历数组对象很多次即可查看其中哪个对象应该通过过滤器。您只需返回[filteredDatasource count]。这样更有效。

关于objective-c - 减少UITableViewController中提供的数据集的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13746303/

10-14 21:24
查看更多