Наблюдатели ReactiveSwift не работают при настройке в инициализаторах подклассов NSObject
Я столкнулся со странной проблемой, работая, когда я установил наблюдателя в инициализаторе класса, подклассе из NSObject и по какой-то причине он не вызывается. Я пытался удалить duringLifetimeOf
оператор и удержание с одноразовым только для утилизации в deinit
Динт работает тоже.
PS: тот же код работает, когда я не подкласс от NSObject
, Пример кода ниже -
protocol ObservableFeatureSource {
var futureFeatureChanges: Signal<AnyFeature, NoError> { get }
}
extension FeatureManager: ReactiveExtensionsProvider {}
extension Reactive where Base: FeatureManager {
func monitorFeatureChanges<F>(for feature: ApplicationFeature<F>) -> Signal<ApplicationFeature<F>, NoError> {
let observableSources = FeatureManager.shared.sources
.flatMap { ($0 as? ObservableFeatureSource)?.futureFeatureChanges }
return Signal<AnyFeature, NoError>.merge(observableSources)
.filterMap { $0 == feature ? feature : nil }
}
}
final class Example: NSObject {
static let shared = Example()
private override init() {
super.init()
FeatureManager.shared.reactive
.monitorFeatureChanges(for: .someFeature)
.observe(on: UIScheduler())
.take(duringLifetimeOf: self)
.observeValues({ _ in
debugPrint("print something")
})
}
}