Chcę użyć selektora na instancji NSObject bez potrzeby zaimplementowanego protokołu. Na przykład istnieje metoda kategorii, która powinna ustawić właściwość błędu, jeśli instancja NSObject, do której jest wywoływana, obsługuje ją. To jest kod, który działa zgodnie z przeznaczeniem:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
Jednak kompilator nie widzi żadnej metody z setError: signature, więc wyświetla ostrzeżenie dla każdego wiersza zawierającego @selector(setError:)
fragment:
Undeclared selector 'setError:'
Nie chcę deklarować protokołu, aby pozbyć się tego ostrzeżenia, ponieważ nie chcę, aby wszystkie klasy, które mogą go używać, implementowały cokolwiek specjalnego. Chciałbym, żeby miały jakąś setError:
metodę lub właściwość.
Czy jest to wykonalne? W jaki sposób?
Pozdrawiam,
EP