我有View Controller,它有一些信号,我想在viewDidLoad()
中观察该信号的值。当View Controller死机时,我需要处理该信号:
override func viewDidLoad() {
super.viewDidLoad()
let composite = CompositeDisposable()
defer {
disposable = ScopedDisposable(composite)
}
composite += someSignal.take(during: self.reactive.lifetime).observeValues { ... }
}
是否有必要像在代码中一样将viewModel.alertSignal.take(during: self.reactive.lifetime).observeValues ...
的结果添加到ScopedDisposable对象:composite += ...
?或者只是打电话给take(during: self.reactive.lifetime)
就足够了?
假设disposable
是您的ViewController的属性,它与take(during:)
的功能相同,因此您可以使用任何您喜欢的,但您不需要同时使用它们!
override func viewDidLoad() {
super.viewDidLoad()
let composite = CompositeDisposable()
defer {
disposable = ScopedDisposable(composite)
}
composite += someSignal.observeValues { ... }
}
要么
override func viewDidLoad() {
super.viewDidLoad()
someSignal.take(during: self.reactive.lifetime).observeValues { ... }
}
我个人更喜欢使用qazxsw poi,因为它只是更少的代码。