Ich möchte einen Selektor für eine NSObject-Instanz verwenden, ohne dass ein implementiertes Protokoll erforderlich ist. Beispielsweise gibt es eine Kategoriemethode, die eine Fehlereigenschaft festlegen sollte, wenn die aufgerufene NSObject-Instanz dies unterstützt. Dies ist der Code, und der Code funktioniert wie beabsichtigt:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
Der Compiler sieht jedoch keine Methode mit der setError: -Signatur und gibt mir daher eine Warnung für jede Zeile, die das @selector(setError:)
Snippet enthält :
Undeclared selector 'setError:'
Ich möchte kein Protokoll deklarieren müssen, um diese Warnung zu entfernen, da ich nicht möchte, dass alle Klassen, die dies verwenden, etwas Besonderes implementieren. Nur durch Konvention möchte ich, dass sie eine setError:
Methode oder Eigenschaft haben.
Ist das machbar? Wie?
Prost,
EP