Я хотел бы отслеживать NSCountedSet, чтобы узнать, меняется ли его содержимое. Настройка KVO, похоже, компилируется, но она не запускается. Первый вопрос: можете ли вы наблюдать набор? Если да, то что-то не так с этим сообщением?KVO на NSCountedSet?
[subViewA addObserver:subViewB forKeyPath:@"countedSet" options:0 context:NULL];
Я на самом деле просто пытается контролировать количество из (количество объектов) множество, если это помогает.
Edit - вот наблюдатель (subViewB):
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context {
if ([keyPath isEqual:@"countedSet"]) {
NSLog(@"Set has changed");
}
}
Edit2 - переместил сообщение addObserver от подвид к ViewController. Поэтому я пытаюсь заставить один subView наблюдать NSCountedSet в другом подвидном представлении viewController. ключевой путь «относительно приемника» - который я предполагаю быть subViewA.
Как вы меняете комплект? Вы используете KVO-совместимые аксессоры? – Chuck
countedSet, объявленный как свойство (неатомное, сохраняемое) и правильно синтезированное. Я использую [myCountedSet addObject: newObject] (и его обратный removeObject :) для изменения набора. Может быть, мне нужен метод countOfCountedSet? – Meltemi