従来の手段を使用してクラスインターフェイスで宣言されていないメソッドを呼び出すときに警告が生成されるのはなぜですか?@selectorを使用してメソッドを呼び出すときには警告が表示されません。それはセレクタが自己とは異なる呼び出し元によって実行されるためですか?例えば@codelectorを使用すると、Xcodeが宣言されていないメソッドについて文句を言うのはなぜですか?
:
-(void) doStuff
{
[self doNow]; // Warning: instance method not found
SEL sel = @selector(doNow); // no warnings
}
-(void) doNow {} // this method is not declared in the interface
+1。 –
ありがとうございます。 Appleがこのオプションをデフォルトで無効にしているとは一貫していないようです。 –