看来 Swift 的 Array 不会通过 didSet,为什么?
var intArray: [Int] = [] {
didSet {
intArray += [0]
}
}
if intArray.count == 0 {
println("Why is intArray not being altered?")
}
willSet
并且在第一次初始化变量didSet
时不会被调用,所以这是正常行为,并且对所有属性类型都有效 - 作为一个数组没有区别。
在操场上试试这个:
var intArray: [Int] = [] {
didSet {
intArray += [0]
}
}
intArray = []
intArray
最后一条语句显示intArray
为 [0]。
阅读Property Observers中的第二条注释