Я хочу использовать селектор на экземпляре 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:
метод или свойство.
Это выполнимо? Как?
Приветствия,
EP