使用swift

时间:2017-02-24 13:38:39

标签: ios swift

我是swift的新手。 我想知道如何使用swift修改for-each循环中的对象。 例如:

struct MyCustomObject {     var customValue:String? }

让myArray:[MyCustomObject?]

for anObject:MyCustomObject in myArray {
    anObject.customValue = "Hello" // <---Cannot assign to property: 'anObject' is a 'let' constant 
}

那么,如果我想在for-loop中更改对象值,该怎么办? 我厌倦了在anObject之前添加“var”,但它不起作用!! (数组中的对象仍保持不变。)

对于目标C,很容易,

NSMutableArray * myArray = [NSMutableArray array];

for (MyCustomObject * object in myArray) 
{ 
  object.customValue = "Hello" 
}

2 个答案:

答案 0 :(得分:6)

那是因为存储在数组中的值是不可变的。您有两个选择:

1:将MyCustomObject更改为类:

class MyCustomObject { var customValue: String? }

2:按索引迭代

for i in 0..<myArray.count {
    if myArray[i] != nil {
        myArray[i]!.customValue = "Hello"
    }
}

答案 1 :(得分:0)

{{1}}