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) {
                // ...
            }
        }
    }

}