类A通过对类B的引用,监听类B中某一对象的改变,而刷新类A中的View。
//A类中的实现
dataManager = [WYDataManagershareInstance];
[dataManager addObserver:self forKeyPath:@"_string" options:NSKeyValueObservingOptionNew context:nil]
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
NSLog(@"ttt:%@",change);
}
解释:WYDataManager:类BdataManager 为A类对其的引用
_string 为B中的一个对象
//B类中的实现
-(void)changeString{
[self willChangeValueForKey:@"_string"];
if(!_string)
_string =@"";
staticunsigned int i = 0;
_string = [NSStringstringWithFormat:@"%u",i++];
[self didChangeValueForKey:@"_string"];
}
当B类中的_string值改变时,类A中的监听回调方法就会收到信息。
---写给自己