手机软件开发用什么编程语言,啥叫优化,最新网站域名ip查询,中信建设有限责任公司世界排名作者 冲破茧缚 2015.08.28 16:12* 写了3967字#xff0c;被8人关注#xff0c;获得了14个喜欢KVC 和 KVO 字数363 阅读32 评论0 喜欢0KVC (Key Value Coding)#xff0c;键值编码#xff0c;通过键值#xff08;字符串#xff09;来访问属性的机制#xff0c;来间接修改… 作者 冲破茧缚 2015.08.28 16:12* 写了3967字被8人关注获得了14个喜欢 KVC 和 KVO 字数363 阅读32 评论0 喜欢0 KVC (Key Value Coding)键值编码通过键值字符串来访问属性的机制来间接修改属性值使用方法 赋值 setValue:forKey: 例如:[person setValue:Jack forKey:name];,执行这个方法时会优先调用setName:方法如果没有这个方法则会直接修改name或者_name这个成员变量取值 valueForKey: 例如:id name [person valueForKey:name];,执行这个方法时会优先调用name方法如果没有这个方法则会直接读取name或者_name这个成员变量KVO (Key Value Observing)监听模型属性值的改变 //cc监听了aa的name属性的改变
[aa addObserver:cc forKeyPath:name options: NSKeyValueObservingOptionOld context:nil];// cc得实现监听方法 /** * 当监听到object的keyPath属性发生了改变 */ - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { NSLog(监听到%对象的%属性发生了改变 %, object, keyPath, change); } //退出时移除监听的属性 - (void)dealloc { [self.p1 removeObserver:self forKeyPath:name]; } KVO是基于Runtime机制实现的当对象执行完addObserver:forKeyPath: options:context:后系统会在运行期动态创建一个新的子类并将对象的isa指针指向该类该类会重写set方法set方法里面先实现super的set方法再调用监听器的observeValueForKeyPath: ofObject: change: context:方法通知监听器属性值发生改变 推荐拓展阅读 著作权归作者所有 转载于:https://www.cnblogs.com/baiwulong/p/5489593.html