我有一个结构,这是我的数据模型:
import Foundation
struct Item : Codable {
var cat:String
var name:String
var createdAt:Date
// more
var itemIdentifier:UUID
var completed:Bool
func saveItem() {
DataManager.save(self, with: itemIdentifier.uuidString)
}
func deleteItem() { DataManager.delete(itemIdentifier.uuidString)
}
mutating func markAsCompleted() {
self.completed = true
DataManager.save(self, with: itemIdentifier.uuidString)
}
}
然后在我的ViewController中,我有以下代码加载数据,这些代码进入TableView(按创建日期排序)。
func loadData() {
items = [Item]()
items = DataManager.loadAll(Item.self).sorted(by: {
$0.createdAt < $1.createdAt })
tableView.reloadData()
}
现在我想添加一个过滤器,以便只有类别进入TableView。例如,只有在猫等于“花园”的地方。
我该如何添加?
答案 0 :(得分:12)
使用过滤。
以下是未经过滤的array
:
var unfilteredItems = ...
以下是过滤代码:
var filteredItems = unfilteredItems.filter { $0.cat == "garden" }
以下是代码:
func loadData() {
items = [Item]()
items = DataManager.loadAll(Item.self).sorted(by: {
$0.createdAt < $1.createdAt }).filter { $0.cat == "garden"}
tableView.reloadData()
}