使用 UISearchController 按对象 属性 搜索?

Searching by object property with UISearchController?

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

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

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 个对象的数组

那我有没有办法根据Proudcttitle属性进行搜索呢?它不必使用谓词,但这是我从之前的教程中得到的。

谢谢!

您可以将谓词更新为

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

这应该没问题。