当前位置: 首页 > 科技观察

iOSruntime实战应用:成员变量和属性

时间:2023-03-12 12:10:13 科技观察

原序开始前建议先看一下iOSruntime的基本理解:iOS内功:runtime有包面试的时候遇到这样一个问题:“你知道吗?知道成员变量的本质是什么吗?”,智子顿时懵了,成员变量的本质是什么?成员变量是成员变量。它只在平时有用。更深层的含义是什么?本文重点介绍成员变量和属性在运行时的定义和使用。名词解析成员变量1.定义:Ivar:实例变量类型,是指向objc_ivar结构体的指针typedefstructobjc_ivar*Ivar;2.运行函数://获取所有成员变量class_copyIvarList//获取成员变量名ivar_getName//获取指定名称的成员变量class_getInstanceVariable//获取成员变量类型编码ivar_getTypeEncoding//设置一个对象成员变量object_setIvar的值//获取一个对象成员变量object_getIvar的值3.例:模型头文件声明如下:@interfaceModel:NSObject{NSString*_str1;}@propertyNSString*str2;@property(nonatomic,copy)NSDictionary*dict1;@end获取它的成员变量:unsignedintoutCount=0;Ivar*ivars=class_copyIvarList([Modelclass],&outCount);for(unsignedinti=0;i