利用Runtime 字典转模型

OBJC_EXPORT Ivar *class_copyIvarList(Class cls, unsigned int *outCount);

获取实例的所有存储属性。

OBJC_EXPORT const char *ivar_getName(Ivar v)

获取某个属性的实例变量名称(_name)。

OBJC_EXPORT const char *ivar_getTypeEncoding(Ivar v)

获取某个属性的实例变量的类名称。

NSString *type = [NSString stringWithUTF8String:ivar_getTypeEncoding(ivar)];
// 如果属性是对象类型,OC的dic,array,string都是引用类型,不是值类型,所以有@符号。
NSRange range = [type rangeOfString:@"@"];

demo地址

你可能感兴趣的:(利用Runtime 字典转模型)