我有一个结构,它是我的数据模型:
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。例如,仅当猫等于“花园”时。
如何添加?
最佳答案
使用过滤。
这是一个未过滤的 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()
}
关于swift - 在 Swift 4 中向数组添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48467867/