Я тестирую это, и кажется, что если вы измените значение в пределах didSet
, вы не получите другой звонок didSet
.В Swift, происходит сброс свойства внутри didSet, запускается еще один hasSet?
var x: Int = 0 {
didSet {
if x == 9 { x = 10 }
}
}
Могу ли я положиться на это? Это где-то задокументировано? Я не вижу его в документе Swift Programming.
Просто протестирован на игровой площадке Xcode 8 (Swift 3) и получил тот же результат. Если ваше изменение свойства из 'didSet',' didSet' снова вызывается __not__. –
«Могу ли я полагаться на это» Да. – matt
У меня на самом деле был 'didSet' на моем массиве, который в конце также имел' defer', используемый для popping * last *. Угадайте, что случилось? Он разбился, потому что я выталкивал каждый элемент, который делал мой массив пустым, должен был делать 'if else' внутри' defer', поэтому я не буду всплывать, если 'myArray.isEmpty! = True' – Honey