上下文: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。 –