接上一篇来介绍下,如何用key-value的形式初始化成员变量
背景接上篇,就不在赘述,如果不了解映射规则的话,可以先看看上一篇
key-value初始化property;
有个上一篇的铺垫,这篇将很好被接受,首先我们通过如下方法实例变量的名称获取到实例变量的指针objc_ivar *Ivar;
同样Ivar类型为一个系统类型,我们不知道其内部实现,当然apple也同样为我们提供了方法来处理它,和上篇一样,先对处理它的方法做个描述
这里我们要用到的就是class_getInstanceVariable方法、class_getClassVariable方法
、object_setIvar方法
步骤
- 获取成(类)员变量的指针Ivar instanceVariable
- object_setIvar初始化
注意,如果是以字符串的形式传递参数,请在setIvar方法之前转换成合适的类型
实现可参加下面代码
关于类型定义的一些说明
需要注意的是,oc中不支持long double类型,所以当double类型对待