【发布时间】:2021-03-25 08:25:12
【问题描述】:
我有一个从 Realm 加载的信息数据数组,包括名称。
我想计算唯一名称条目的总数以生成数值。
此数值将用于在表格视图中显示唯一名称,numberOfRowsInSection 中每个唯一名称对应一行。
目前它将在TableView上查询并显示以下内容,即myTableViewData中的所有条目;
-
亚当
-
亚当
-
本
-
本
-
本
-
查理
-
达伦
-
达伦
我希望它只显示唯一的条目,忽略任何重复的名称,如:
-
亚当
-
本
-
查理
-
达伦
var myTableViewData: Results<RecordOfInformation>? = nil
let Realm = try! Realm()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
myTableViewData = realm.objects(RecordOfInformation.self).sorted(byKeyPath: "itemName")
tableView.reloadData()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myTableViewData!.count
}
编辑
我已将 myTableViewData 修改为,
realm.objects(RecordOfInformation.self).distinct(by: ["itemName"]).sorted(byKeyPath: "itemName")
tableView.reloadData()
tableView 现在将显示
- 亚当
- 本
- 查理
- 达伦
但是,在print("myTableViewData") 期间,输出控制台将为每个选定的唯一名称打印与每个领域条目相关的所有信息。
这样加载所有信息的效率是不是太麻烦了,还是有办法只加载itemName作为数组只显示itemName,以数组形式显示为“Adam, Ben, Charlie, Darren”在控制台中?
【问题讨论】:
-
你可以使用distinct method
标签: swift uitableview realm datasource