KVO的原理介绍见:http://www.cocoachina.com/industry/20140624/8936.html
简单粗暴的说,KVO可监听具有setProperty的属性,通过继承重写父类的setProperty方法,插入willChangeValueForKey 和didChangeValueForKey通知;而且,只能监听到通过调用setProperty方法而引起值变化的场景;
也就是说,直接修改成员值时,KVO是无能为力的
@interface Sark : NSObject
@property (nonatomic, copy) NSString *name;
@end
@implementation Sark
-(void)set_name:(NSString *)s
{
self.name = s; //KVO可以监听到
[_name release];
_name = [s copy]; // KVO无能为力
}
@end