私は最近、 Objective-C ランタイムでクラスを作成する方法に関する Mike Ashの興味深いチュートリアルを読み直しました。
私は長い間、言語のこの強力な機能をどこに適用すればよいか考えていました。私は頭に浮かんだほとんどのアイデアに対して、いつも行き過ぎた解決策を考えており、最終的には に進みますNSDictionary
。実行時にクラスを作成する使用例は何ですか? 私が見ているのは Obj-C インタープリターだけです...もっとアイデアはありますか?
私は最近、 Objective-C ランタイムでクラスを作成する方法に関する Mike Ashの興味深いチュートリアルを読み直しました。
私は長い間、言語のこの強力な機能をどこに適用すればよいか考えていました。私は頭に浮かんだほとんどのアイデアに対して、いつも行き過ぎた解決策を考えており、最終的には に進みますNSDictionary
。実行時にクラスを作成する使用例は何ですか? 私が見ているのは Obj-C インタープリターだけです...もっとアイデアはありますか?
誰かが実行時にクラスを作成する必要がある場合、いくつかの可能なオプションがあります
一般的に..これにはいくつかの用途があります。しかし、実際には、デフォルトのサービス アプリケーションでは、これを行う必要はありません:)
たとえば、Core Dataまたはデータベースに関連する任意のAPIに沿って使用して、コンパイル時に不明なオブジェクトの新しいクラスを作成できます。ただし、これが頻繁に使用されるとは思えません。ほとんどの場合、システムがプログラムを実行するときにシステム自体が使用するメカニズムです...
Cocoa フレームワークの KVO は、クラスの「通知」バージョンを動的に作成することによって実装されます。http://www.mikeash.com/pyblog/friday-qa-2009-01-23.htmlを参照してください。