我想在一个数组中迭代一个struct对象:
例如在这种情况下,我想改变背景颜色
但编译器对我大喊大叫
struct Options { var backgroundcolor = UIcolor.blackcolor()}var arrayOfMyStruct = [MyStruct]...for obj in arrayOfMyStruct { obj.backgroundcolor = UIcolor.redcolor() // ! get an error}struct是值类型,因此在for循环中你正在处理一个副本.
作为一个测试,你可以试试这个:
Swift 3:
struct Options { var backgroundcolor = UIcolor.black}var arrayOfMyStruct = [Options]()for (index,_) in arrayOfMyStruct.enumerated() { arrayOfMyStruct[index].backgroundcolor = UIcolor.red}
Swift 2:
struct Options { var backgroundcolor = UIcolor.blackcolor()}var arrayOfMyStruct = [Options]()for (index,_) in enumerate(arrayOfMyStruct) { arrayOfMyStruct[index].backgroundcolor = UIcolor.redcolor() }
在这里,您只需枚举索引,并直接访问存储在数组中的值.
希望这可以帮助.
总结以上是内存溢出为你收集整理的Swift – 如何在迭代结构对象时进行突变全部内容,希望文章能够帮你解决Swift – 如何在迭代结构对象时进行突变所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)