我有一个数组
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter({(dataString: String) -> Bool in
return dataString.(of: searchText, options: .caseInsensitive) != nil
})
tableView.reloadData()
}
我有一个用于从数组搜索并在表中显示结果的代码:
return dataString.String(of: searchText, options: .caseInsensitive) != nil
但是在searchArray
行中,我有一个错误:
元组类型的值'(ean:字符串,名称:字符串,重量:字符串, 品牌:字符串,百分比:字符串,内部:字符串,img:字符串,数据包: String,date:String)'没有成员'String'
如果我将dataString.String更改为dataString.name,则出现错误:
无法调用非函数类型'String'的值
请帮助我从{{1}}搜索“名称” 。
答案 0 :(得分:3)
首先,不鼓励您使用元组作为数组类型。使用自定义结构或类
苹果说:
组对相关值的临时组很有用。它们不适合创建复杂的数据结构。如果您的数据结构可能会在临时范围之外持续存在,请将其建模为类或结构,而不是元组。
有两个主要问题:
dataString.range(of...
dataString
不是字符串,而是一个元组(类型注释是多余的)将功能更改为
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchArrayFiltered = searchText.isEmpty ? searchArray : searchArray.filter({tuple -> Bool in
return tuple.name.range(of: searchText, options: .caseInsensitive) != nil
})
tableView.reloadData()
}
答案 1 :(得分:0)
为
创建一个结构struct Model {
var ean: String
var name: String
var weight: String
var brand: String
var percent: String
var inside: String
var img: String
var packet: String
var date: String
}
然后在您的[Model]