Почему предупреждения генерируются при вызове методов, необъявленных в интерфейсе класса, с использованием обычных средств, но не при вызове методов с использованием @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