Я понятия не имею, возможно ли это вообще, но это избавит меня от большого стресса и плохого кода. Можно ли отслеживать, когда массив обновляется? Например, метод A изменяет массив a=[1,2,3]
на a=[1,2,3,4
], возможно ли иметь какой-то делегат, который запускается при обновлении a
?
Мониторинг изменений объекта массива
Ответ 1
Если ваш массив является свойством в вашем классе, вы можете использовать наблюдателей свойств. willSet вызывается перед изменением, thenSet вызывается. Это действительно легко.
var myArray:[Int] = [1, 3, 4] {
didSet {
println("arrayChanged")
}
}
Это изменит массив печати, если я добавлю Int, remove и Int и т.д. Я обычно помещаю его в одну строку:
var myArray:[Int] = [1, 3, 4] { didSet { println("arrayChanged") } }