使用runtime获取属性
Posted 猿咧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用runtime获取属性相关的知识,希望对你有一定的参考价值。
在 YuansPerson 类中定义属性(在.h 和.m 中定义都可以)
class_copyIvarList:获取类的所有属性变量,count记录变量的数量IVar是runtime声明的一个宏,是实例变量的意思,instance variable,在runtime中定义为 typedef struct objc_ivar *Ivari
var_getName:将IVar变量转化为字符串
ivar_getTypeEncoding:获取IVar的类型
object_setIvar(<#id obj#>, <#Ivar ivar#>, <#id value#>) : 可以强制修改原属性的值
YuansPerson *yuansPerson = [YuansPerson new];
unsigned int count = 0;
Ivar *nameList = class_copyIvarList([YuansPerson class], &count);
for (int i = 0;i < count; i ++) {
Ivar var = nameList[i];
const char *name = ivar_getName(var) ;
const char *type = ivar_getTypeEncoding(var);
NSLog(@"name = %s type = %s",name,type);
}
以上是关于使用runtime获取属性的主要内容,如果未能解决你的问题,请参考以下文章