您好我正在构建代码,我正在使用结构。我想在视图上设置搜索。这是我到目前为止所做的以及我正在做的事情
struct subCategory {
var subCategoryName = String()
var subCategoryDesc = String()
var subImageId = String()
var subType = String()
var subLinkType = String()
var subCatImageUrl = String()
var subCatId = String()
}
var subCatContent = subCategory()
var subCatArray = [subCategory]()
var filteredsub = [subCategory]()
这是我的视图控制器
self.resultSearchController = UISearchController(searchResultsController: nil)
self.resultSearchController.searchResultsUpdater = self
self.resultSearchController.dimsBackgroundDuringPresentation = false
self.resultSearchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.resultSearchController.searchBar
self.tableView.reloadData()
这是假设发生魔法的地方,但它不起作用因为subCatArray不是NSArray所以我不能使用谓词。我怎么能这样做?
func updateSearchResultsForSearchController(searchController: UISearchController)
{
self.filteredsub.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let array = (self.subCatArray as NSArray).filteredArrayUsingPredicate(searchPredicate)
self.filteredsub = array as! [String]
self.tableView.reloadData()
}
答案 0 :(得分:2)
由于您使用的是subCategory
数组,因此您可以使用filter
,例如:
filteredsub = subCatArray.filter {
$0.subCategoryName == searchController.searchBar.text!
}