首页 > 解决方案 > Swift 调用中的额外参数“谓词”

问题描述

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
   let request: NSFetchRequest<Item> = Item.fetchRequest()
   print(searchBar.text!)

   let predicate = NSPredicate(format: "title CONTAINS[cd] %@", searchBar.text!)

   request.sortDescriptors = [NSSortDescriptor(key: "title", ascending: true)]

   loadItems(with: request, predicate: predicate)
}

错误是“调用中的额外参数'谓词'”。如果我删除谓词参数,则不会在项目数组中进行搜索。这是在表格视图中。您可以在文件末尾的GitHub 上查看完整代码。

标签: iosswiftuitableviewnspredicatensfetchrequest

解决方案


您必须将谓词分配给请求

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
   let request: NSFetchRequest<Item> = Item.fetchRequest()
   print(searchBar.text!)

   request.predicate = NSPredicate(format: "title CONTAINS[cd] %@", searchBar.text!)

   request.sortDescriptors = [NSSortDescriptor(key: "title", ascending: true)]

   loadItems(with: request)
}

推荐阅读