Ho un semplice protocollo con una proprietà:valore-chiave Osservando su un oggetto protocollo: Avvisi del compilatore on addObserver:
@protocol StopsSource <NSObject>
@property (retain,readonly) NSArray * stops;
@end
Sto aggiungendo un osservatore chiave-valore altrove per ascoltare modifiche al " si ferma" proprietà:
id<StopsSource> source = ...
[source addObserver:self
forKeyPath:@"stops"
options:NSKeyValueObservingOptionNew
context:nil];
codice funziona come previsto in che ottengo eventi observeValueForKeyPath quando la 'ferma' la proprietà è cambiata. Il vero fastidio è un avviso del compilatore sulla chiamata addObserver:
warning: '-addObserver:forKeyPath:options:context:' not found in protocol(s)
Il metodo 'addObserver' è definito in una categoria a NSObject:
@interface NSObject(NSKeyValueObserverRegistration)
Esiste un modo per ottenere XCode far cadere questo avvertimento ? Ho capito che i protocolli non possono adottare categorie, quindi non sono sicuro di come portare i metodi NSKeyValueObserverRegistration nel mio protocollo, a meno di copiare le dichiarazioni nel protocollo stesso, che sembra un hack.
So che questo è un problema di poco conto, in quanto è solo un avvertimento del compilatore, ma sono interessato a sapere se c'è un modo "giusto" per affrontare questo.
Sede di Abizern per informazioni importanti, ma al tuo problema specifico , sostituire 'id' con NSObject * source = ... –