【发布时间】:2015-10-30 14:20:10
【问题描述】:
我有一个简单的结构数组
var fields: [ProfileField]?
当我尝试遍历此数组时,swift 会在此代码上显示错误:
guard let _fields = fields else {return}
for field in _fields {
}
错误是:
Cannot use mutating getter on immutable value: 'field' is a 'let' constant
而且这段代码编译得很好:
for var field in _fields {
}
为什么我需要将field 声明为var?
【问题讨论】:
-
@MikePollard guard let _fields = fields else {return}
-
我认为你需要在你的 for 循环中透露你在做什么
-
我猜你正在做一些变异
field -
是的,当你的结构是一个类时,它就是一个引用。现在它是一个结构和一个值,如果你用 let 声明它就不能改变。