【发布时间】:2015-09-24 17:15:47
【问题描述】:
我创建了一个 searchController,因此我试图让它根据 UISearchController 中的文本过滤内容。我创建了一个自定义对象,如下所示。我尝试过使用 NSPredicate,但不断收到:
cannot convert value of type NSPredicate to expected type @noescape (organization) throws...
class Organization: Object {
var id: Int = 0
var name: String = ""
var shortName: String = ""
var image: NSData = NSData()
var pinImage: NSData = NSData()
let locations = List<Location>()
}
然后我的 ViewController 中有一个名为 sortedLocations 的数组,其中包含许多 Organization 对象。
到目前为止我已经尝试过:
func updateSearchResultsForSearchController(searchController: UISearchController)
{
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF.name CONTAINS[c] %@", searchController.searchBar.text!)
let array = sortedLocations.filter(searchPredicate)
filteredTableData = array as! [Organization]
self.tableView.reloadData()
}
【问题讨论】:
标签: ios swift uisearchcontroller