obj-c では、どのように呼び出すことができますか
[myClass myString];
どこmyString = @"myMethod";
どれと同等であるべきか[myClass myMethod];
この種のメタ言語操作が可能かどうかはわかりません。
obj-c では、どのように呼び出すことができますか
[myClass myString];
どこmyString = @"myMethod";
どれと同等であるべきか[myClass myMethod];
この種のメタ言語操作が可能かどうかはわかりません。
[myClass performSelector: NSSelectorFromString(myString)];
ドキュメント:
NSString
は をセレクター (タイプSEL
)に変換しますを使用できますNSSelectorFromString
。次の行に沿ったものが機能するはずです。
SEL selector = NSSelectorFromString(@"myMethod");
[myClass performSelector:selector withObject:nil];
[myClass class]
メタクラスを返し、メタクラスでクラス メソッドが呼び出されます。例えば
[NSString someClassMethod];
NSString *instanceOfString = @"some string instance";
[[instanceOfString class] someClassMethod];
編集:質問を読み違えました。NSSelectorFromString
NSString から SEL を取得するために使用します。これについては、Apple のFoundation Functions ReferenceNSClassFromString
に記載されており、 、NSStringFromClass
、NSStringFromSelector
、NSStringFromProtocol
およびNSProtocolFromString
その他も表示されます。
SEL mySelector = NSSelectorFromString(@"myMethod");
[myClass performSelector:mySelector];
performSelector:
または、友人が提供するよりも引数や戻り値の型に柔軟性が必要な場合は、 NSInvocationクラスを見てください。