Je voudrais surveiller un NSCountedSet pour voir si son contenu change. La mise en place de KVO semble compiler mais cela n'est pas déclenché. Première question: pouvez-vous observer un ensemble? Si oui, y a-t-il quelque chose qui ne va pas dans ce message?KVO sur un NSCountedSet?
[subViewA addObserver:subViewB forKeyPath:@"countedSet" options:0 context:NULL];
Je suis vraiment juste essayer de contrôler le nombre de (nombre d'objets) l'ensemble si cela aide.
Edit - voici l'observateur (subViewB):
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([keyPath isEqual:@"countedSet"]) {
NSLog(@"Set has changed");
}
}
Edit2 - déplacé le message addObserver du sous-vue à la viewController. J'essaie donc d'obtenir une sous-vue pour observer un NSCountedSet dans un autre des sous-visualisations de viewController. Le chemin clé est "relatif au récepteur" - que je suppose être sous-visualisé.
Comment changez-vous l'ensemble? Utilisez-vous des accesseurs compatibles KVO? – Chuck
countedSet déclaré comme propriété (nonatomic, retain) et correctement synthétisé. J'utilise [myCountedSet addObject: newObject] (et son inverse removeObject :) pour modifier l'ensemble. Ai-je besoin d'une méthode countOfCountedSet peut-être? – Meltemi