出来ますか?
3 に答える
4
Objective-C ランタイムには、メソッド オブジェクトを受け取り、SEL を返す「 method_getName 」という関数があります。
于 2009-08-15T19:04:51.237 に答える
0
ヘッダーの例は明確ではありません。
しかし、ここに行きます。すべてのクラスのすべてのセレクターは、同じ名前空間に存在します。doFoo
class Bar
、またはdoFoo
classでの意味は、Baz
両方とも同じ一意のセレクターになります。これは、セレクターを取得するためにクラスを気にする必要がないことを意味します。それを行うための2つの良い方法。
NSSelectorFromString(@"doFoo"); // If you have the selector name as a string.
@selector(foFoo); // If it is selector constant inlined in your code.
あなたの質問は、メソッドからセレクターを返す方法にも言及している可能性があります。セレクターは obj-c の第一級市民であるため、それらを任意の変数として渡し、メソッドから返すことができます。セレクターの型はSEL
.
-(SEL)selectorFromFoo:(Foo*)aFoo; // Declare a method returning a selector.
SEL sel = [myBar selectorFromFoo:myFoo]; // Get a selector.
[myBar proformSelector:sel withObject:nil]; // Perform this selector
于 2009-11-10T15:19:08.127 に答える