runTime

定义: runTime 直接翻译就是运行时,他是一套比较底层的C语言API。

他是OC的幕后工作者,在运行过程时,都会转换为runTime的C语言代码。

作用:获取类的全部成员变量也就是属性列表.H.M都可以获取到私有的也不例外

unsigned int count;

Ivar *ivar = class_copyIvarList([ClassName class] ) // 成员变量列表

class_copyPropertyList // 属性列表

class_copyMethodList //方法列表

class_copyProtocolList //协议列表


动态地为某个类添加属性\方法, 修改属性值\方法

遍历一个类的所有成员变量(属性)\所有方法

1.归档(也称对象序列化)就是通过某种格式把对象保存到本地文件,以便以后读回该对象的内容

2.解档(也称读档)就是把归档的对象文件读成原来的对象的过程

NSCoding协议

//归档方法

- (void)encodeWithCoder:(NSCoder *)aCoder {

[aCoder encodeObject:self.name forKey:@"name"];

[aCoder encodeObject:self.sex forKey:@"sex"];

[aCoder encodeInteger:self.age forKey:@"age"];

}

//反归档方法

- (instancetype)initWithCoder:(NSCoder *)aDecoder {

self = [super init];

if (self) {

self.name = [aDecoder decodeObjectForKey:@"name"];

self.sex = [aDecoder decodeObjectForKey:@"sex"];

self.age = [aDecoder decodeIntegerForKey:@"age"];

}

return self;

}

我们需要对一个类的属性进行归档解档的时候属性特别的多,这时候,我们就会写很多对应的代码,但是如果使用了runtime就可以动态设置 

你可能感兴趣的:(runTime)