2014-12-15 4 views
1

У меня есть следующий код:Как проверить значение ключевого значения в ObjectiveC для словаря массивов?

@property (strong, nonatomic) NSMutableDictionary *todoSessionDict; 
    @synthesize todoSessionDict; 

[self addObserver:self forKeyPath:@"todoSessionDict" options:NSKeyValueObservingOptionNew context:NULL]; 


-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 

} 

------------------------ 
NSMutableArray *unCompletedTodosArr = [NSMutableArray array]; 
NSMutableArray *completedTodosArr = [NSMutableArray array]; 

[self.todoSessionDict setObject:unCompletedTodosArr forKey:@"unCompletedTodosArr"]; 
[self.todoSessionDict setObject:completedTodosArr forKey:@"completedTodosArr"]; 

Любая идея, как проверить, если @"unCompletedTodosArr" and @"completedTodosArr" значения изменяются в self.todoSessionDict с помощью KVO?

ответ

0

Во-первых, это должно быть:

[self addObserver:self forKeyPath:@"todoSessionDict.unCompletedTodosArr" options:0 context:nil]; 
    [self addObserver:self forKeyPath:@"todoSessionDict.completedTodosArr" options:0 context:nil]; 

И для обоих, методы:

#pragma mark - KVO 
    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
    { 
    // Here your actions depends on the key path... 
    } 

    -(void)didChangeValueForKey:(NSString *)key 

    { 

    } 
Смежные вопросы