オブジェクトで必ずしもサポートされていないメソッドを呼び出す必要がある状況がありますが、同時に、メソッドに渡すことができる引数の種類が制限されるため、performSelector を使用できません。したがって、私はこれを行います:
if ([someObject respondsToSelector:@selector(someMethod)])
[(id)someObject someMethod];
コンパイラは満足しています。私も満足していますが、このメッセージ送信方法に注意点はありますか?
同期バージョンの performSelector と上記の本質的な違いは何ですか?
編集: (id) メソッドと比較して、performSelector を使用するとパフォーマンスが低下しますか?