Nik*_*nko 2 ios swift rx-swift reactivex rx-cocoa
我正在尝试将我的FRP理解从ReactiveCocoa 2.5迁移到RxSwift,我有一个误解.在ReactiveCocoa中,我rac_signalForSelector想在观察方法的调用时使用.有没有办法使用RxSwift实现这个逻辑?
我写了一个小例子,我想在test方法调用时处理订阅.但是在订阅块中我仍然可以看到一个next(6)事件.我究竟做错了什么?
let subject = PublishSubject<Int>()
subject.takeUntil(self.rx.sentMessage(#selector(test))).subscribe { event in
print(event)
}
subject.onNext(3)
test()
subject.onNext(6)
//////////////////
func test() {
}
Run Code Online (Sandbox Code Playgroud)
你可以使用sentMessage:
class ViewController: UIViewController {
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
self.rx.sentMessage(#selector(UIViewController.viewWillAppear(_:)))
.subscribe({ e in
print(e)
})
.addDisposableTo(disposeBag)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
下一个([0])
或者另一个例子:
class SomeNSObjectClass: NSObject {
}
class ViewController: UIViewController {
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
let myObj = SomeNSObjectClass()
myObjc.rx.sentMessage(NSSelectorFromString("dealloc"))
.subscribe({ e in
print(e)
})
.addDisposableTo(disposeBag)
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
next([])
完成
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |