5

たとえば、私は持っています

NSString *string = @"return sharedInstance;";

クラスメソッドがあります

+ (id)sharedInstance;

その文字列をプレーンコードに変換して、メソッドで使用できますか?これはデバッグに非常に役立ちます。いくつかのコードをテストしたいメソッドがあるとします(単純な戻り値としましょう、それは可能ですか?)メソッドのコードを記述し、実行時に新しいコードをテストするだけです。

4

2 に答える 2

6

iOSのObjectiveCはコンパイルされた言語です。コードは、アプリケーションを実行するずっと前に解釈され、マシンコードに変換されます。このような動的な方法でObjectiveCを実行することはできません。このためには、動的言語が必要になります。

于 2013-02-16T12:47:24.100 に答える
5

あなたが説明したことは正確には不可能です。ただし、クラスをインスタンス化し、文字列を使用して(理論的に)メソッドを呼び出す機能など、特定のものがサポートされています。

NSClassFromString渡された文字列に基づいてクラスをインスタンス化できます。

NSSelectorFromString渡された文字列に基づいてメソッドを呼び出すか、「呼び出す」ことができます。

文字列は、実行時に動的に決定できます。

あなたのコメントに基づくと、これは明らかにあなたが興味を持っているものではありません(私はそれが実際にあなたの質問に対処していると思うという事実にもかかわらず)。あなたができることの1つ(ネイティブのObj-Cではありませんが、コメントのいくつかを考えると適切だと思います)は、に注入JavaScriptすることUIWebViewです。

于 2013-02-16T12:43:01.290 に答える