Eu quero usar um seletor em uma instância NSObject sem a necessidade de um protocolo implementado. Por exemplo, há um método de categoria que deve definir uma propriedade de erro se a instância NSObject em que é chamada oferecer suporte. Este é o código, e o código funciona como pretendido:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
No entanto, o compilador não vê nenhum método com a assinatura setError:, portanto, é exibido um aviso para cada linha que contém o @selector(setError:)
trecho:
Undeclared selector 'setError:'
Não quero declarar um protocolo para se livrar desse aviso, porque não quero que todas as classes que possam usar isso implementem algo especial. Apenas por convenção, quero que eles tenham um setError:
método ou propriedade.
Isso é factível? Quão?
Saúde,
EP