ios知识积累ios开发进阶-笔记我是程序员;您好程先生;叫我序员就好了

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

2015-01-14  本文已影响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,你可以使用替换方法来解决。

上一篇下一篇

猜你喜欢

热点阅读