首页 > 代码库 > 面向对象1

面向对象1

键值编码(kvc) 键值监听(kvo)

setValue:属性值 forKey:属性名  没有找到相应成员变量会爆出异常(先是方法-成员变量-类内为name的成员变量) _成员变量名

valueForKey:属性名   没有找到相应成员变量会爆出异常(先是方法-成员变量-类内为name的成员变量)

方法名   下划线成员变量  成员变量  

解决异常方法  重写 setValue: forUndefinedKey: 方法   和valueForUndefinedKey: 方法

 

处理nil  值  重写 setNilValueForKey :方法

处理复合型 用key路径    forKeyPath:     valueForKeyPath:

 

其实比起性能来说。kvc操作没有getter 和 setter 方法的操作性能好 。 只是kvc操作简洁。能提炼通用性代码。

 

KVO (key value observing)键值监听  

注册方式 addObserver: forKeyPath: option:context;

删除方式:removerObserver:forKeyPath   和 removerObserver:forKeyPath:context:

会调用 obserValueForKeyPath:ofObject:change:context:  需要重写改方法,以改变状态时用于回调。

 

面向对象1