美文网首页
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