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

作者: 小桃桃 | 来源:发表于2015-01-14 20:18 被阅读178次

    对象结构模型

    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)

        本文链接:https://www.haomeiwen.com/subject/hkhcxttx.html