什么事runtime
runtime是动态运行时语言,oc是通过运行时确定对象的类型,使用c与汇编语言构成
oc主要依靠msg_send,消息发送机制
1、关联对象
关联对象类型 等价于
OBJC_ASSOCIATION_ASSIGN assign
OBJC_ASSOCIATION_RETAIN_NONATOMIC nonatomic,retain
OBJC_ASSOCIATION_COPY_NONATOMIC nonatomic,copy
OBJC_ASSOCIATION_RETAIN retain
OBJC_ASSOCIATION_COPY copy
通过下列方法管理
void objc_setAssociatedObject(id object, void*key,id value, objc_AssociationPolicy policy);//关联对象 static void *key 设置关联的对象值 关联类型
id objc_getAssociatedObjcet(id object,void *key);//关联对象 static void *key(同上)
removeAssociatedObjects(id object); //移除
2、方法互换
Method 定义一个接收获取到方法的对象
class_getInstanceMethod(Class aClass, SEL aSeletor);//用来获取要调用的方法 可以使用第二次获取与其互换的方法
void method_exchangeImplementations(Method m1,Method m2);//获取到两个方法之后调用此方法 就可以将两个方法互换
3、获取类方法、实例方法、成员变量等
isa指针 指向 类
IMP指针 指向 方法
ivar指针 指向 成员变量
网友评论