上下文:Swift,iOS8-9,UITableView,UISearchController。基于这个例子 代码:http://www.ioscreator.com/tutorials/add-search-table-view-tutorial-ios8-swift从UITableView中的类中搜索属性
func updateSearchResultsForSearchController(searchController: UISearchController) {
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text!)
let scores = (allScores as NSArray).filteredArrayUsingPredicate(searchPredicate)
filteredTableData = scores as! [Score]
tableView.reloadData()
}
问题:我的数据是从类Score
它有一个属性name
,这就是我需要的都在(理想name
和topic
,但name
我会现在开心)。所以allScores as NSArray
不工作,因为Score
不包含文本,但name
属性。我怎样才能在这里实现?类似allScores.name
显然不起作用,但我不知道如何调用数组中所有项目的名称属性。
为什么NSArray和NSPredicate?直接在Swift数组上使用Swift过滤器方法。请参阅http://stackoverflow.com/questions/32767274/filter-by-array-of-objects-searchcontroller。 –