最近面试遇到,很多问这个问题的,由于近一年都在写项目,对一些基础,尤其o c忘记了很多,回答的不好,现如今上班了,在工作之余写一些东西,出于自己的一点点理解 。
做项目其实和技术提高还是有区别的,做项目都是有一些常用sdk,长用方法,追求快,上线,很少去沉淀思考一些东西。下面说说这两个的理解。
kvc 键值编码(根据字符串来给属性赋值),set value for key or for keypath ,在调用这个方法时候,api会根据set key _key _iskey key iskey,的顺序,一个一个的来找属性赋值,找不到抛出异常,找到了直接返回结束。
去取值的话 value for key or keypath ,根据 getkey _key _ key , iskey 也是一样的 去取值 ,取不到就会崩溃,取到了返回 值 ,要注意的的是取值和赋值都需要对象类型 ,这个注意包装和类型转换
KVO 是基于KVC的一个键值观察者(通过keyPath来观察其值的变化 ) 其重写了set方法 ,当其观察的属性发生变化的时候,会调用其代理方法,触发回调。
kvo and kvc
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...