Я пытаюсь придумать простой наблюдаемый объект в Свифт и думал использовать RxSwift. Я не мог найти простой пример, чтобы сделать что-то вроде этого:Простая наблюдаемая структура с RxSwift?
protocol PropertyObservable {
typealias PropertyType
var propertyChanged: Event<(PropertyType, Any)> { get }
}
class Car: PropertyObservable {
typealias PropertyType = CarProperty
let propertyChanged = Event<(CarProperty, Any)>()
dynamic var miles: Int = 0 {
didSet {
propertyChanged.raise(.Miles, oldValue as Any)
}
}
dynamic var name: String = "Turbo" {
didSet {
propertyChanged.raise(.Name, oldValue as Any)
}
}
}
выше чисто Swift решения для наблюдаемых от this blog post; Мне очень нравится, как это решение на основе протокола, а не инвазивное. В моем случае у меня есть объект в моем проекте, где каждое свойство устанавливается асинхронно под капотом (устройство Bluetooth). Поэтому мне нужно наблюдать/подписываться на изменения, а не получать/устанавливать свойства в режиме реального времени.
Я продолжаю слышать, что RxSwift будет делать именно это и многое другое. Тем не менее, я не могу найти простой пример, чтобы соответствовать выше и начинаю думать, что RxSwift переполнен для моей потребности? Спасибо за любую помощь.
Было бы, наверное, лучше, если вы выложили фактический код объекта из вашего проекта и показать, как вы устанавливаете его свойства. В поле RxSwift есть различные инструменты, которые могут быть применены к этой проблеме. –