iOS 开发每天分享优质文章iOS学习开发iOS学习

Runtime底层解析 - 常用API

2019-12-27  本文已影响0人  iOS开发之家

类相关:

1,动态创建一个类(参数:父类,类名,额外的内存空间)


// 创建类

Class newClass = objc_allocateClassPair([NSObject class], "Dog", 0);

2,注册一个类(要在类注册之前添加成员变量)

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 与2800+iOS开发者一起交流学习成长!

3,销毁一个类

4,获取isa指向的Class

5,设置isa指向的Class

6,判断一个OC对象是否为Class

7,判断一个Class是否为元类

8,获取父类

成员变量相关

1,获取一个实例变量信息

2,拷贝实例变量列表(最后需要调用free释放)

3,设置和获取成员变量的值

4,动态添加成员变量(已经注册的类是不能动态添加成员变量的)


class_addIvar(newClass, "_age", 4, 1, @encode(int));

5,获取成员变量的相关信息

const char *ivar_getTypeEncoding(Ivar v)

属性相关

1,获取一个属性

2,拷贝属性列表(最后需要调用free释放)

3,动态添加属性

4,动态替换属性

5,获取属性的一些信息

方法相关

1,获得一个实例方法、类方法

2,方法实现相关操作

3,拷贝方法列表(最后需要调用free释放)

4,动态添加方法


class_addMethod(newClass, @selector(run), (IMP)run, "v@:");

5,动态替换方法

6,获取方法的相关信息(带有copy的需要调用free去释放)

7,选择器相关

8,用block作为方法实现

上一篇 下一篇

猜你喜欢

热点阅读