1. ホーム
  2. objective-c

[解決済み] performSelectorの使用: メソッドを呼び出すだけと比較した場合

2022-05-14 23:20:17

質問

私はまだObjective-Cの初心者ですが、次の2つの文の違いは何でしょうか?

[object performSelector:@selector(doSomething)]; 

[object doSomething];

どのように解決するのですか?

基本的にperformSelectorは、与えられたオブジェクトに対して、どのセレクタを呼び出すかを動的に決定することができます。 言い換えれば、セレクタは実行前に決定する必要はありません。

したがって、これらが等価であるにもかかわらず

[anObject aMethod]; 
[anObject performSelector:@selector(aMethod)]; 

2番目のフォームでは、このようなことができます。

SEL aSelector = findTheAppropriateSelectorForTheCurrentSituation();
[anObject performSelector: aSelector];

を送信する前に