微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

循环通过Swift结构来获取键和值

我想循环使用mystruct的每个键,并为每个属性打印其键和值.

struct mystruct {
  var a = "11215"
  var b = "21212"
  var c = "39932"
}

func loopthrough {
    for (key,value) in mystruct {
        print("key: \(key),value: \(value)") // Type mystruct.Type does not conform to protocol 'Sequence'
    }
}

但是使用上面的几行我总是得到这个错误信息:

Type mystruct.Type does not conform to protocol ‘Sequence’

如何避免收到此消息?

解决方法

首先让我们使用CamelCase作为结构名称

struct MyStruct {
    var a = "11215"
    var b = "21212"
    var c = "39932"
}

接下来,我们需要创建MyStruct类型的值

let elm = MyStruct()

现在我们可以根据elm值构建一个Mirror值.

let mirror = Mirror(reflecting: elm)

镜像值允许我们访问榆树的所有属性,这是如何

for child in mirror.children  {
    print("key: \(child.label),value: \(child.value)")
}

结果:

key: Optional(“a”),value: 11215

key: Optional(“b”),value: 21212

key: Optional(“c”),value: 39932

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐