タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Objective-Cとswizzlingに関するmacneko-ayuのブックマーク (1)

  • 既存クラスのメソッドを入れ替える(Method Swizzling) - Qiita

    状況: 画面が10個ほどあるiPhoneアプリ UIViewControllerのviewWillAppear等にログを仕込みたい。 すでにUIViewControllerを継承したクラスが多数あって、全部にログを仕込むのはめんどくさいしダサくていやだ。 解決策: method_exchangeImplementationsでメソッドを入れ替えてしまえばいいよ! 黒魔法へようこそ Objective-C Runtime には、method_exchangeImplementations()という関数が用意されています。これで「メソッドの交換」が可能となります。これはSDKで提供されているクラスのメソッドも入れ替える事が可能です。なのでUIViewControllerのviewWillAppear等を自作メソッドと差し替える事が出来ます。この差し替えは、動的に行われるので、動作する環境に応じ

    既存クラスのメソッドを入れ替える(Method Swizzling) - Qiita
    macneko-ayu
    macneko-ayu 2018/04/12
    へー、こんなことができるのか
  • 1