1

私は最近、 Objective-C ランタイムでクラスを作成する方法に関する Mike Ashの興味深いチュートリアルを読み直しました。

私は長い間、言語のこの強力な機能をどこに適用すればよいか考えていました。私は頭に浮かんだほとんどのアイデアに対して、いつも行き過ぎた解決策を考えており、最終的には に進みますNSDictionary。実行時にクラスを作成する使用例は何ですか? 私が見ているのは Obj-C インタープリターだけです...もっとアイデアはありますか?

4

3 に答える 3

6

誰かが実行時にクラスを作成する必要がある場合、いくつかの可能なオプションがあります

  • それに関する情報を非表示にする (ほとんどの場合は役に立ちませんが、... できます)
  • 多重継承を実行するには (本当に必要な場合:)
  • Obj-C で記述された独自の言語 (つまり、XML に似たもの) を使用して、プログラムで解釈できます (NSProxy のようなものですが、さらに優れています)。
  • 実行時の動作を変更できる動的クラスを作成する

一般的に..これにはいくつかの用途があります。しかし、実際には、デフォルトのサービス アプリケーションでは、これを行う必要はありません:)

于 2012-12-05T17:56:50.720 に答える
0

たとえば、Core Dataまたはデータベースに関連する任意のAPIに沿って使用して、コンパイル時に不明なオブジェクトの新しいクラスを作成できます。ただし、これが頻繁に使用されるとは思えません。ほとんどの場合、システムがプログラムを実行するときにシステム自体が使用するメカニズムです...

于 2012-10-16T08:15:07.790 に答える
0

Cocoa フレームワークの KVO は、クラスの「通知」バージョンを動的に作成することによって実装されます。http://www.mikeash.com/pyblog/friday-qa-2009-01-23.htmlを参照してください。

于 2012-12-05T18:05:12.953 に答える