iOS 选择要在表格中显示的特定条目
Posted
技术标签:
【中文标题】iOS 选择要在表格中显示的特定条目【英文标题】:iOS Select specific entries to display in table 【发布时间】:2014-06-15 12:25:53 【问题描述】:我有一个数组,其中包含多个字典。
格式如下:- 大批 - 指数 - DOW = 工作日 - 指数 - DOW = 周末 - 指数 - DOW = 工作日
我想用仅包含 DOW = Weekday 的那些字典中的数据填充表。
枚举这个的最快方法是什么?
请注意,数据将通过过滤器进行更改,然后重新加载表格。
【问题讨论】:
抱歉,我忘记了格式被删除了。但感谢您的主要回答。效果很好。 【参考方案1】:您可以使用NSPredicate
过滤您的数组,如下所示:
NSArray *data = @[
@@"Dow":@"Weekday", @"One":@"Two" // Item 0
, @@"Dow":@"Weekend", @"Three":@"Four" // Item 1
, @@"Dow":@"Weekday", @"Five":@"Six" // Item 2
];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"(Dow=='Weekday')"];
NSArray *res = [data filteredArrayUsingPredicate:pred];
上面的代码将保留NSArray
s 项目0 和2,并删除项目1,因为它不包含将@"Dow"
设置为@"Weekday"
的条目。
上面的data
变量代表您示例中的预过滤数据。
【讨论】:
【参考方案2】:我建议你阅读 Apple UITableViewDataSource
协议指南 here 或者 this 教程。
基本上你会想要 -
-
覆盖
numberOfSectionsInTableView:
并返回表格中的部分数(如果不相关,则返回 0)。
Ovveride tableView:numberOfRowsInSection:
在这里您可以在您的字典中“应用”所需的过滤器并返回您实际想要显示的正确行数。
下次您更新过滤器并再次调用reloadTable
时,上述步骤将根据新过滤器正确过滤表。
【讨论】:
以上是关于iOS 选择要在表格中显示的特定条目的主要内容,如果未能解决你的问题,请参考以下文章
表单/表格中的 SwiftUI 多个 NavigationLink - 条目保持突出显示
LibreOffice 电子表格:使用特定过滤器选择随机单元格