Почему Swift Array нельзя изменить в свойствах обозревателя didSet?
Кажется, что массив Swift не будет проходить через didSet, почему?
var intArray: [Int] = [] {
didSet {
intArray += [0]
}
}
if intArray.count == 0 {
println("Why is intArray not being altered?")
}
1 ответ
Решение
willSet
а также didSet
не вызываются, когда переменная инициализируется впервые, так что это нормальное поведение и допустимо для всех типов свойств - наличие массива не имеет значения.
Попробуйте это на детской площадке:
var intArray: [Int] = [] {
didSet {
intArray += [0]
}
}
intArray = []
intArray
последнее утверждение показывает, что intArray
это [0].
Прочитайте 2-е примечание в Property Observers