Je souhaite utiliser un sélecteur sur une instance NSObject sans avoir besoin d'un protocole implémenté. Par exemple, il existe une méthode de catégorie qui devrait définir une propriété d'erreur si l'instance NSObject sur laquelle elle est appelée la prend en charge. Voici le code et le code fonctionne comme prévu:
if ([self respondsToSelector:@selector(setError:)])
{
[self performSelector:@selector(setError:) withObject:[NSError errorWithDomain:@"SomeDomain" code:1 userInfo:nil]];
}
Cependant, le compilateur ne voit aucune méthode avec la signature setError:, donc il me donne un avertissement, pour chaque ligne qui contient l' @selector(setError:)
extrait de code:
Undeclared selector 'setError:'
Je ne veux pas avoir à déclarer un protocole pour me débarrasser de cet avertissement, car je ne veux pas que toutes les classes qui peuvent l'utiliser implémentent quelque chose de spécial. Juste par convention, je veux qu'ils aient une setError:
méthode ou une propriété.
Est-ce faisable? Comment?
Salutations,
EP