Swift 调用中的额外参数“谓词”

Posted

技术标签:

【中文标题】Swift 调用中的额外参数“谓词”【英文标题】:Extra argument 'predicate' in call in Swift 【发布时间】:2020-04-18 17:01:01 【问题描述】:
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 查看完整代码。

【问题讨论】:

【参考方案1】:

您必须将谓词分配给请求

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)

【讨论】:

这不会引发错误,但正在搜索。 答案是正确的。你必须在loadItems结尾处打电话给self.tableView.reloadData()

以上是关于Swift 调用中的额外参数“谓词”的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2中的“调用中的额外参数'错误'”错误[重复]

Swift 4“调用中的额外参数”Rxswift

Swift 中的额外参数调用

如何在 swift 的操场上修复“调用中的额外参数 'at'”

Alamofire Swift 3.0 调用中的额外参数

为啥我在 Swift 中的初始化程序不断收到“调用中的额外参数”