Наблюдатели 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")
            })
    }
}

0 ответов

Другие вопросы по тегам