7

実行時にファイルからObjectiveCクラスを作成したいと思います。たとえば、Objective cアプリケーションがある場合、それをテキストファイル(または.h .mペア、機能するものは何でも)にポイントし、アプリケーションにテキストファイルを解析させ、実行時にクラスを作成させます(クラス番号物体)。もちろん、パーサーと、それが可能かどうか知りたいすべてのものを作成します。私はこれらの2つの記事を読みました:

http://www.mikeash.com/pyblog/friday-qa-2010-11-6-creating-classes-at-runtime-in-objective-c.html

http://www.mikeash.com/pyblog/friday-qa-2010-11-19-creating-classes-at-runtime-for-fun-and-profit.html

これは、実行時にObjective Cクラスを作成する方法を示していますが、コンパイル時に定義されたC関数を使用して実行されています。文字列を使用して同じことを実行し、完璧な関数を定義する方法を見つけることができれば、コンパイル時にそれらを定義する必要がないためです。

4

3 に答える 3

2

それが反射型プログラミングと呼ばれるものです。Obj-C はスクリプト言語ではないため、コード評価のサポートはないと思います。そのため、Obj-C のリフレクションの概念は静かに制限されています。さらに、実行時にコンパイラはすでにコードを Obj-C の clang コードに変換しており、バイトコードを逆変換して再度コンパイルするだけでも非常に時間がかかります。

Obj-C リフレクションについては、これらの回答を参照できます

于 2012-12-24T10:11:12.333 に答える
1

私のgithubプロジェクトcocoa-interprreterを見てください。それはあなたが望むものの一部です。

テキスト ファイルを受け取り、実行時にコンパイルし、結果の実行可能ファイルを NSTask を使用して実行します。NSBundleを使用してバイナリが独自のプロセスにロードされるように変更するのは非常に簡単です

https://github.com/Daij-Djan/cocoa-interpreter

于 2013-01-05T17:42:03.480 に答える
1

もちろん。完全に可能です。

完全な Objective-C パーサーとコード ジェネレーターが含まれているので、これで Objective-C サポートから始めることをお勧めします。

于 2012-10-12T16:16:47.530 に答える