为什么不能在属性观察器didSet中更改Swift数组?

时间:2014-09-18 09:51:38

标签: arrays swift observers didset

似乎Swift的数组不会通过didSet,为什么?

var intArray: [Int] = [] {
    didSet {
        intArray += [0]
    }
}

if intArray.count == 0 {
    println("Why is intArray not being altered?")
}

1 个答案:

答案 0 :(得分:4)

首次初始化变量时,

willSetdidSet ,因此正常行为,对所有属性类型都有效 - 作为数组没有区别。

在操场上试试这个:

var intArray: [Int] = [] {
    didSet {
        intArray += [0]
    }
}

intArray = []

intArray

最后一条语句显示intArray为[0]。

阅读Property Observers

中的第二个音符