JopiNLee

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

OC-runtime机制,就是苹果给开发者提供的一套在运行时动态创建类、添加属性/方法(当然不止这些)的API,它是一套纯C语言的API

runtime的三大应用:

1.动态的创建一个类

2.动态地为某个类(包括category)添加属性/方法,修改属性值/方法

3.遍历一个类的所有属性/方法

 

以上的方法其实都是基于获取对象/类的isa指针并进行操作来实现的

相关函数

1.  增加

增加函数:class_addMethod

增加实例变量:class_addIvar

增加属性:@dynamic标签,或者class_addMethod,因为属性其实就是由getter和setter函数组成

增加分类属性:可以看http://blog.csdn.net/liujinlongxa/article/details/46293705

增加Protocol:class_addProtocol 

2.  获取

获取函数列表及每个函数的信息(函数指针、函数名等等):class_getClassMethod method_getName ...

获取属性列表及每个属性的信息:class_copyPropertyList property_getName

获取类本身的信息,如类名等:class_getName class_getInstanceSize

获取变量列表及变量信息:class_copyIvarList

获取变量的值

3.    替换

将实例替换成另一个类:object_setClass

替换类方法的定义:class_replaceMethod

4.其他常用方法:

交换两个方法的实现:method_exchangeImplementations.

设置一个方法的实现:method_setImplementation.

posted on 2015-11-26 10:11  JopiNLee  阅读(151)  评论(0编辑  收藏  举报