КВО на NSMutableString не работает - PullRequest
0 голосов
/ 26 марта 2012

Я пытаюсь наблюдать за изменениями в NSMutableString isDetailView:

-(void)viewDidLoad {
    [self addObserver:self forKeyPath:@"isDetailView" options:NSKeyValueObservingOptionNew context:nil];
    [isDetailView setString:@"YES"];
}


- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"obersedValueFOrKeyPath:%@", keyPath);
}

Но метод НаблюдатьВыбуждающий_Клиент никогда не вызывается.Есть идеи?

1 Ответ

5 голосов
/ 26 марта 2012

Вы не изменяете свойство, а только содержимое объекта, на которое оно указывает.Если вы сделаете isDetailView нормальную строку и выполните

[self setIsDetailView: @"YES"]

, она будет работать.

Кстати, свойства, которые начинаются с "is", обычно считаются логическими и выглядят такболее подходящий тип в этом случае тоже.

...