UITableView搜索对象中的名称

时间:2015-07-16 22:44:49

标签: ios swift uitableview nspredicate uisearchdisplaycontroller

我正在尝试搜索从Parse检索到的对象数组,以便在UITableView中显示结果。我尝试使用我在其他应用程序中使用的相同方法,但在这种情况下,它只是搜索字符串数组。

这是我目前的代码:

func filterContentForSearchText(searchText: NSString) {
    let resultPredicate = NSPredicate(format: "SELF beginswith[cd] %@", searchText) //Use either contains or beginswith
    searchResults = DataManager.sharedInstance.rideArray.name.filteredArrayUsingPredicate(resultPredicate)
}

func searchDisplayController(controller: UISearchDisplayController!, shouldReloadTableForSearchString searchString: String!) -> Bool {
    self.filterContentForSearchText(searchString)
    return true
}

我明白为什么它不起作用,但我无法找到问题的解决方案。我想在'Ride'对象中搜索的属性是name。

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

假设rideArray是一个具有属性name的Parse对象数组,谓词应为

NSPredicate(format: "name beginswith[cd] %@", searchText)

然后使用

过滤数组
rideArray.filteredArrayUsingPredicate(searchPredicate)