Я хочу использовать селектор экземпляра NSObject без необходимости использования реализованного протокола. Например, существует метод категории, который должен установить свойство ошибки, если экземпляр NSObject, который он вызвал, поддерживает его. Это код, и код работает так, как предполагалось:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
Тем не менее, компилятор не видит никакого метода с помощью setError: signature, поэтому он дает мне предупреждение для каждой строки, содержащей фрагмент @selector(setError:)
:
Undeclared selector 'setError:'
Я не хочу объявлять протокол, чтобы избавиться от этого предупреждения, потому что я не хочу, чтобы все классы могли использовать это для реализации чего-то особенного. Просто по соглашению я хочу, чтобы у них был метод или свойство setError:
.
Это выполнимо? Как?
Cheers,
ЕР