博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KVC该机制
阅读量:6689 次
发布时间:2019-06-25

本文共 941 字,大约阅读时间需要 3 分钟。

KVC该机制
KVC
cocoa
的大招
,
用来间接获取或者改动对象属性的方式。
一、
KVC的作用:
KVC
大招之中的一个:
[
self
setValuesForKeysWithDictionary:dict];
KVC
的大招之二:
使用
KVC
在获取数值时,假设指定对象不包括
keyPath
"
键名
"
。会自己主动进入对象的内部查找
假设取值的对象是一个数组,相同返回一个数组
[
self
.carGroups valueForKey:
@"title”];
// 会在嵌套的plist文件里依次查找。
kvc机制的注意事项:
 
1. 依据字典给模型赋值,一个个键值对给模型赋值,太麻烦了。利用KVC将字典中全部内容赋值给模型。须要注意假设模型中的属性和字典中key不匹配的时候,就会报错。报找不到模型中的属性。

 
2.
模型中的属性能够不所有出如今
plist
文件里
二、KVC的使用
1.KVC能够改变私有变量。
2.KVC支持数学运算。

3.
forKeyPath包括了forKey的功能。
4.
forKeyPath中能够利用.运算符,一层一层的往下查找对象的属性。
5.假设
forKeyPath查找对象的某一个属性为数组类型,会返回一个新的数组。
6.赋值
[
self
setValue
:tabBar
forKeyPath
:
@"tabBar"
];
7.取值
[
self
valueForKeyPath
:
@"tabBar
];
三、KVC内部的实现原理
KVC的内部实现原理:
利用
KVC
给模型属性赋值的内部实现原理
(setValuesForKeysWithDictionary)
:会遍历字典中的全部键值对,然后调用模型对象的
setValue:forKey,
依据字典中的全部
key
。给模型属性赋值。

可是模型中的属性和字典中不匹配的时候。当模型调用

setValue:forKey
。这时候依据
key
没有找到模型中属性的时候,就会报错。
解决方案:
利用执行时机制依据模型中的属性找到字典中的键值对给属性赋值。这样就不会报找不到相应
key
错误。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
一、分布式商城架构逻辑图
查看>>
机器人是如何完成避障的?机器人避障解决方案解读
查看>>
通过错误堆栈信息和源码分析错误来源
查看>>
C和C++ 读写文件速度问题
查看>>
layer.mobile 弹出框插件(2.0版)
查看>>
IDC服务品质协议范本留存
查看>>
在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)
查看>>
ks.cfg 文件,参数讲解
查看>>
前端MVC框架 EmberJS总结
查看>>
LVS
查看>>
我的友情链接
查看>>
搭建高可用mongodb集群(三)—— 深入副本集内部机制
查看>>
C#基础 条件语句、选择语句和循环语句
查看>>
15款经典图表软件推荐
查看>>
bugzilla安装笔记
查看>>
我的友情链接
查看>>
Office 365 用户指引 3 ——Exchange Online-邮件功能介绍
查看>>
Office 365管理员指引 14——Sharepoint 日历
查看>>
日常Shell处理命令
查看>>
入门到精通pl/sql编程(千里之行始于足下)3篇
查看>>