こんにちは。開発担当の福井です。 突然ですが、みなさん NSProxy をご存じでしょうか? NSProxy は Foundation の中で唯一 NSObject を継承しないクラスです(NSProxy のサブクラスを除く)。 また、その実装はほとんどありません。 今回はその NSProxy を使って view に対するメソッド呼び出しをフックしてみようというお話です。 NSProxy の使い方 名前からも推測できるように、NSProxy は Proxy パターンを実現するためのクラスです。 メッセージの呼び出しが動的に解決される Objective-C において Proxy オブジェクトを実現するのは実に簡単です。 NSProxy は、ただ自身に送られたメッセージを、そのまま別のオブジェクトに受け流すことで Proxy としての機能を実現します。 Proxy オブジェクトを作ってみる