标签:运行时 方式 赋值 nbsp 同名 返回字典 识别 没有 ios
KVC方法
)根据对象的属性名称作为key值,传入具体的value值赋值给对象的属性。key中不包含路径:
使用setValue:forKey:
方法给对象属性赋值:
使用valueForKey
方法取出对象的属性值:
数组使用valueForKey
方法且key中不包含路径,将会抽取数组中所有对象的对应属性组成一个新的数组返回:
key中包含路径:
使用setValue:forKeyPath:
方法给对象属性赋值:
使用valueForKeyPath
方法取出对象的属性值:
同理,数组使用valueForKeyPath
方法,也能够将数组中对象的key属性抽取出来组成一个新的数组;
数组使用valueForKeyPath
方法,在key中添加@符号 + 要执行的计算操作;可以实现指定的计算功能:
字典使用KVC:
字典使用setValuesForKeysWithDictonary:
方法,将字典中key对应的value值设置到对象的对应属性;不过切记字典中的key在对象中一定要有与之对应的属性(即:对象中的属性只能多于字典中的key),如果字典中的key在对象中找不到与之对应的属性,程序崩溃。
对象使用dictionaryWithValuesForKeys:
方法,通过传入对象的属性数组,返回字典;字典中将对象的属性以键值对的形式存放。
使用KVC不包含路径方式,给对象属性赋值、或者根据key从对象中取值时,key中一定不能包含路径;因为,不带Path
的KVC方法默认将传入的字符串当成一个完整的key,并不能识别其中的路径(即:key中的.符号);如果传入路径程序崩溃。
数组使用KVC不包含路径方式,只能执行计算数组长度的功能;不能执行其他操作,否则,程序将会崩溃。
执行计算数组的长度功能:
执行计算长度功能并在key中添加属性名时,程序崩溃:
执行求和功能,程序崩溃:
数组使用KVC的forKeyPath方法计算长度时,传入对象的属性名无效;返回整个数组的长度:
KVC使用forKey类型方法时,key中不能传入路径;因为,forKey类型方法只会将传入的字符串当成整个key;在对象中查找属性时没有找到与key同名的属性时程序报错。
数组使用forKey类型的方法时,只能执行计算长度的功能;即:array.count,不过,在key中必须使用@符号,表明这是在执行计算操作。
KVC使用forKeyPath类型方法时,运行时系统能够根据key中的路径找到与之对应的对象的属性;进行赋值、取值操作。
KVC使用forKeyPath类型方法时,能够在将要执行的计算操作结合@符号添加到key中;执行计算功能。
字典使用KVC时,能够根据字典中的键对应的值设置到对象对应的属性中;也能根据对象属性数组,将对象的属性打包到字典中使用。
标签:运行时 方式 赋值 nbsp 同名 返回字典 识别 没有 ios
原文地址:http://www.cnblogs.com/leilifengixng/p/6367480.html