美文网首页
sendMessage和methodInvoked

sendMessage和methodInvoked

作者: FallPine | 来源:发表于2018-09-14 15:14 被阅读19次

    其原理简单说就是利用 Runtime 消息转发机制来转发方法,同时在调用方法的前后分别产生两种数据流

    • sendMessage

    获取方法执行前产生的数据流

    • methodInvoked

    获取方法执行后产生的数据流

    import UIKit
    import RxSwift
    import RxCocoa
     
    class ViewController: UIViewController {
         
        let disposeBag = DisposeBag()
         
        override func viewDidLoad() {
            super.viewDidLoad()
             
            //使用sentMessage方法获取Observable
            self.rx.sentMessage(#selector(ViewController.viewWillAppear(_:)))
                .subscribe(onNext: { value in
                    print("1")
                })
                .disposed(by: disposeBag)
             
            //使用methodInvoked方法获取Observable
            self.rx.methodInvoked(#selector(ViewController.viewWillAppear(_:)))
                .subscribe(onNext: { value in
                    print("3")
                })
                .disposed(by: disposeBag)
        }
         
        //默认的viewWillAppear方法
        override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            print("2")
        }
    }
    

    参考文章:Swift - RxSwift的使用详解61(sendMessage和methodInvoked的区别)

    相关文章

      网友评论

          本文标题:sendMessage和methodInvoked

          本文链接:https://www.haomeiwen.com/subject/ttpogftx.html