gpt4 book ai didi

arrays - 在 SWIFT 中过滤字符串数组的谓词抛出错误,指出 NSCFString 不是键值编码

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:05 24 4
gpt4 key购买 nike

下面是我的代码片段

//Search Bar Delegate
func 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(format:) 强烈希望与 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 不是键值编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26920600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com