1、Key-value coding 机制允许通过变量名设置和获取变量值。
[myObject setValue:valueObject forKey:@"myKey"];
[myObject valueForKey:@"myKey"];
KVC只能处理对象,不能处理int、float等类型;
如果变量有存取方法,会被调用,但是必须正确命名。
2、Key-value observing
将变量与某个控件绑定,当变量变化时,将通知控件进行相应改变。
注意:改变变量值的方式必须通过set函数,如果时直接修改变量值,将不会通知观察者。
如果直接修改变量值,需要显式通知观察者,如下:
[self willChangeValueForKey:@"fido"];
fido++;
[self didChangeValueForKey:@"fido"];