Почему Xcode не жалуется на необъявленные методы при использовании @selector?

Почему предупреждения генерируются при вызове методов, необъявленных в интерфейсе класса, с использованием обычных средств, но не при вызове методов с использованием @selector? Причина в том, что селекторы могут быть выполнены другим вызывающим, а не самим собой?

Например:

-(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
5
задан Keavon 18 May 2014 в 05:56
поделиться