【发布时间】:2017-10-19 17:06:44
【问题描述】:
我有一个UITableView 和一个UISearchController。我想根据UISearchBar.text 的NSPredicate 过滤我的数据数组(名为:allGames)。
我的代码只过滤这样的字符串数组:
func updateSearchResults(for searchController: UISearchController) {
filteredGames.removeAll(keepingCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (allGames).filtered(using: searchPredicate)
filteredGames = array as! [String]
self.tableView.reloadData()
}
在这里我可以过滤我的数组。但是如果我创建这个结构:
struct Games {
var name: String?
var type: String?
var image: UIImage?
}
如何根据游戏名称和类型过滤数组?提前感谢您的帮助。
【问题讨论】:
-
Search Bar Swift 3 - Can't use in/contains operator with collection 的可能重复项 - 您不能将 NSPredicate 与结构数组一起使用。
-
哦,我阅读了很多问题,但没有找到这些问题!
-
只搜索
[swift] struct array nspredicate...并且不要用“这不是重复的”来介绍您的问题:) -
啊哈,我会记住的。
标签: arrays swift struct filter uisearchcontroller