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,你可以使用替换方法来解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容