こんにちは。開発担当の福井です。 突然ですが、みなさん NSProxy をご存じでしょうか? NSProxy は Foundation の中で唯一 NSObject を継承しないクラスです(NSProxy のサブクラスを除く)。 また、その実装はほとんどありません。 今回はその NSProxy を使って view に対するメソッド呼び出しをフックしてみようというお話です。 NSProxy の使い方 名前からも推測できるように、NSProxy は Proxy パターンを実現するためのクラスです。 メッセージの呼び出しが動的に解決される Objective-C において Proxy オブジェクトを実現するのは実に簡単です。 NSProxy は、ただ自身に送られたメッセージを、そのまま別のオブジェクトに受け流すことで Proxy としての機能を実現します。 Proxy オブジェクトを作ってみる
![NSProxy を使って UIWebView のイベントハンドリングをフックする](https://cdn-ak-scissors.b.st-hatena.com/image/square/4cd6bcd98c8e8a2a5ae1b2ffb7d8d168c9b80c31/height=288;version=1;width=512/https%3A%2F%2Fblog.fenrir-inc.com%2Fwp%2Fwp-content%2Fthemes%2Ffenrir_dev%2Fimg%2Fcommon%2Fogp_dev_engineer.png)