Voglio usare un selettore su un'istanza di NSObject senza la necessità di un protocollo implementato. Ad esempio, esiste un metodo di categoria che dovrebbe impostare una proprietà di errore se l'istanza NSObject su cui viene chiamata la supporta. Questo è il codice e il codice funziona come previsto:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
Tuttavia, il compilatore non vede alcun metodo con setError: signature, quindi mi dà un avvertimento, per ogni riga che contiene lo @selector(setError:)
snippet:
Undeclared selector 'setError:'
Non voglio dichiarare un protocollo per sbarazzarmi di questo avvertimento, perché non voglio tutte le classi che potrebbero usarlo per implementare qualcosa di speciale. Solo per convenzione voglio che abbiano un setError:
metodo o una proprietà.
È fattibile? Come?
Saluti,
EP