kvo - key value observable
- 添加了kvo的对象,程序会在运行时通过runtime动态生成一个派生类 NSKVONotify_Class
- 派生类中会重写set方法,并调用foundation框架中的_NSSet(数据类型,ex:int,double...)ValueAndNotify
-(void)setValue:(Int)value{
_NSSetIntValueAndNotify(value)
}
void _NSSetIntValueAndNotify(int value){
//即将改变值
[self willChangeValue];
///调用父类方法设值
[super serValue:value];
///完成值改变
[self didChangeValue:value];
}
void didChangeValue(int value){
这里会调用observal的方法
[observable observalue:value content:nil object:nil];
}
3:派生类其余重写方法
-(void)dealloc{
}
-(Class)class{
}
-(Bool)_isKvo{
return true
}