ios开发进阶-对象模型(2)

对象结构模型


1.对象在内存中是一个结构体,无法动态改变大小,无法动态增加成员变量。

   结构体中的 对象方法列表 methodLists 是一个指针,它可以动态增加方法,

   可以想下Category动态扩展方法的原理了。

注:可以通过objc_setAssociatedObject、objc_getAssociatedObject 来动态添加成员变量,但是没有真正改变对象的内存结构。

动态创建对象

1. import  runtime.h

2. 使用 objc_allocateClassPair 方法创建新类

3. 使用 class_addMethod  方法添加新方法

4. 使用 objc_registerClassPair  注册新类

5. 使用 object_getClass  获得isa指针指向的对象

动态替换对象

1.class_replaceMethod  替换类方法,如果没有原方法,会使用替换的方法

2.method_exchangeImplementations  交互2个方法的实现

3.method_setImplementation 设置方法的实现


总结

你的app 在ios6.1 下有系统函数bug,你可以使用替换方法来解决。

你可能感兴趣的:(ios开发进阶-对象模型(2))