Swift 在字典上迭代时访问自定义对象属性
我有几个东西Swift 在字典上迭代时访问自定义对象属性,swift,Swift,我有几个东西 Struct object { var title:String? } var one = object("green") var two = object("black") var three = object("blue") 我还有一本字典 var dict = ["a":[one, two], "b":[three]] 我想要的是迭代字典值并找到所有从“b”开始的对象 我想了想 for (key, value) in dict { if value.lowe
Struct object {
var title:String?
}
var one = object("green")
var two = object("black")
var three = object("blue")
我还有一本字典
var dict = ["a":[one, two], "b":[three]]
我想要的是迭代字典值并找到所有从“b”开始的对象
我想了想
for (key, value) in dict {
if value.lowercaseString.containsString(searchText.lowercaseString)
}
但是我得到了一个错误
value of type [object] has no member 'lowercaseString'
如何处理此问题?您的
值是对象“[object]”的数组,而不是上面代码定义的字符串:
var dict = ["a":[one, two], "b":[three]]
因此,您必须将该值作为对象的数组来处理,以找出您想要的内容
for (key, value) in dict {
let found = value.filter({ (anObject: object) -> Bool in
return anObject.title!.lowercaseString.containsString("b")
})
if (found.count > 0) {
//you find what you want.
}
}
通过查看字典的键和值,可以在字典上进行迭代
但是值不是字符串,而是字符串数组
做
您发布的代码不起作用,因为它包含语法错误。请给我们您正在处理的代码。value在这里不是一个字符串,因此value.lowercaseestring将不起作用。不,我需要在每个值内搜索。我需要某种方法来获取每个值元素的属性标题,我可以对其应用小写字母长度,这正是我需要的。谢谢当然,我得等一会儿。我解决了一些问题。
import Foundation
struct object {
var title:String?
}
var one = object(title:"green")
var two = object(title:"black")
var three = object(title:"blue")
var dict = ["a":[one, two], "b":[three]]
for (key, value) in dict {
for obj in value {
if let title = obj.title {
if title.lowercaseString.containsString(searchText.lowercaseString) {
// ...
}
}
}
}