使用UISearchController按对象属性搜索?

时间:2015-08-06 15:31:46

标签: ios swift nspredicate uisearchcontroller

在我的updateSearchResultsForSearchController方法中,我有一个用于查找匹配项的searchPredicate,但是,我想学习如何将它与Object的属性一起使用。

我有一个名为Product的对象,它有一个名为title的String属性,我想将其用作搜索参数。到目前为止,这就是我的搜索功能:

func updateSearchResultsForSearchController(searchController: UISearchController) {
        productSearchResults.removeAll(keepCapacity: false)

        let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text)

        let array = (orderGuideItemsList as NSArray).filteredArrayUsingPredicate(searchPredicate)
        productSearchResults = array as! [Product]

        self.tableView.reloadData()
}

其中orderGuideItemsListProduct个对象的数组

那么我可以根据Proudct的{​​{1}}属性进行搜索吗?它不必使用谓词,但这是我之前的教程中的内容。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将谓词更新为

let searchPredicate = NSPredicate(format: "SELF.title CONTAINS[c] %@", searchController.searchBar.text)

这应该可以正常工作。