J'ai un protocole simple avec une propriété:-valeur clé d'observation sur un objet de protocole: Avertissements de compilation sur addObserver:
@protocol StopsSource <NSObject>
@property (retain,readonly) NSArray * stops;
@end
J'ajoute un observateur clé-valeur ailleurs pour écouter les changements au " arrête » la propriété:
id<StopsSource> source = ...
[source addObserver:self
forKeyPath:@"stops"
options:NSKeyValueObservingOptionNew
context:nil];
code fonctionne comme prévu dans ce que je reçois des événements observeValueForKeyPath lorsque la « propriété arrêts » est changé. Le véritable ennui est un avertissement du compilateur sur l'appel addObserver:
warning: '-addObserver:forKeyPath:options:context:' not found in protocol(s)
La méthode « addObserver » est défini dans une catégorie à NSObject:
@interface NSObject(NSKeyValueObserverRegistration)
Est-il possible d'obtenir XCode de laisser tomber cet avertissement ? Je comprends que les protocoles ne peuvent pas adopter de catégories, donc je ne suis pas sûr de savoir comment introduire les méthodes NSKeyValueObserverRegistration dans mon protocole, à moins de copier les déclarations dans le protocole lui-même, ce qui semble être un hack.
Je sais que c'est un peu un problème trivial, en ce sens que c'est juste un avertissement de compilateur, mais je suis intéressé de savoir s'il y a un "bon" moyen de résoudre ce problème.
Voir Abizern des informations importantes, mais à votre problème spécifique , remplacez 'id' par NSObject * source = ... –