gpt4 book ai didi

ios - 无法将类型 'Array>' 的值分配给类型 '[MyVC.Objects]'

转载 作者:行者123 更新时间:2023-11-29 05:52:50 26 4
gpt4 key购买 nike

我正在尝试使用文本字段作为表格 View 的搜索栏。所以我添加了下面的代码。现在它显示一些错误,例如

Cannot assign value of type 'Array<Dictionary<String, String>>' to type '[MyVC.Objects]'

var objectArray = [Objects]()
var SearchedobjectArray = [Objects]()

override func viewDidLoad() {
super.viewDidLoad()
SearchedobjectArray = objectArray

}

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
{
if string.isEmpty
{
search = String(search.characters.dropLast())
}
else
{
search=textField.text!+string
}

print(search)
let predicate=NSPredicate(format: "SELF.name CONTAINS[cd] %@", search)
let arr=(objectArray as NSArray).filtered(using: predicate)

if arr.count > 0
{
SearchedobjectArray.removeAll(keepingCapacity: true)
SearchedobjectArray = arr as! Array<Dictionary<String,String>>
}
else
{
SearchedobjectArray=objectArray
}
looTable.reloadData()
return true
}

错误在这里:

SearchedobjectArray = arr as! Array<Dictionary<String,String>>我知道,我不用作 Array<Dictionary<String,String> 。但在这里我如何才能像我的项目一样附加我不确定。

有什么帮助吗?

最佳答案

快速修复:

SearchedobjectArray = arr as! [Objects]

您的数组不是由字典组成的。

真正的修复:

忘记NSArrayNSPredicate并使用快速过滤:

SearchedobjectArray = objectArray.filter {
$0.name.range(of: search, options: [.diacriticInsensitive, .caseInsensitive]) != nil
}

if SearchedobjectArray.isEmpty {
SearchedobjectArray = objectArray
}

关于ios - 无法将类型 'Array<Dictionary<String, String>>' 的值分配给类型 '[MyVC.Objects]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55513518/

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