arrays – 谓词来过滤SWIFT中的字符串数组会引发错误,说NSCFString不是键值编码

arrays – 谓词来过滤SWIFT中的字符串数组会引发错误,说NSCFString不是键值编码,第1张

概述以下是我的代码段 //Search Bar Delegatefunc searchBar(searchBar: UISearchBar, textDidChange searchText: String){ println(searchText) var predicate:NSPredicate=NSPredicate(format: "SELF CONTAINS[c] \( 以下是我的代码段
//Search bar Delegatefunc searchbar(searchbar: UISearchbar,textDIDChange searchText: String){    println(searchText)    var predicate:nspredicate=nspredicate(format: "SELF CONTAINS[c] \(searchText)")!    self.ListItemToBedisplayed=ListItem.filteredArrayUsingPredicate(predicate)    (self.vIEw.vIEwWithTag(1) as UItableVIEw).reloadData()}

我得到的错误

*** Terminating app due to uncaught exception ‘NSUnkNownKeyException’,reason: ‘[<__NSCFString 0x17405ef90> valueForUndefinedKey:]: this
class is not key value Coding-compliant for the key V.’

我想过滤数组中的字符串以通过我的搜索字符串进行过滤.如果我的搜索字符串包含在数组中的任何字符串中,则应该列出它.

强烈期望nspredicate(格式:)与printf样式的格式字符串一起使用(它在插入参数时自动引用参数等).

你正在使用Swift的字符串插值,因此已经格式化的查询作为单个字符串来到nspredicate.这使得它不会使用参数执行任何伏都教,从而使您遇到格式错误的查询.

改为使用printf样式格式:

if let predicate = nspredicate(format: "SELF CONTAINS %@",searchText) {    self.ListItemToBedisplayed = (ListItem as NSArray).filteredArrayUsingPredicate(predicate)    (self.vIEw.vIEwWithTag(1) as UItableVIEw).reloadData()}
总结

以上是内存溢出为你收集整理的arrays – 谓词来过滤SWIFT中的字符串数组会引发错误,说NSCFString不是键值编码全部内容,希望文章能够帮你解决arrays – 谓词来过滤SWIFT中的字符串数组会引发错误,说NSCFString不是键值编码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1028509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存