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