Git Hub
коротко

Swift KVO

21 января 2019, 23:25

Модель

import Foundation

@objc class Card: NSObject {
    
    @objc dynamic var life: Int = 0
    @objc dynamic var atack: Int = 0
    @objc dynamic var defense: Int = 0
    
}

Задаём переменную для invalidate()

var cardObserver: NSKeyValueObservation?

Подписываемся на изменения и вешаем обработчик

let card = Card()
        cardObserver = card.observe(\Card.life, options: .old, changeHandler: { card, change in
            print("Changed life value \(card.life) -> ", change.oldValue ?? -1)
        })

Соответсвенно когда мы меняем значение переменной `life` то вызывается наш обработчик

card.life = 12
card.life = 1
card.life = 34
Поделиться
Популярное