![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
运行时相关
文章平均质量分 77
Allen_iOS
为了不迟到,最好早走几分钟
展开
-
Objective - c 运行时关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)
关联 关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。 关联特性只有在Mac OS X V10.6以及以后的版本上才是可用的。 在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间。这在我们无法访问到类的源码的时候或者是考虑到二进制兼容性的时候是非常有用。 关联是基于关键字的,因此,我们转载 2015-02-27 10:11:00 · 500 阅读 · 0 评论 -
Objective-C消息机制的原理
在Objective-C中,message与方法的真正实现是在执行阶段绑定的,而非编译阶段。编译器会将消息发送转换成对objc_msgSend方法的调用。 objc_msgSend方法含两个必要参数:receiver、方法名(即:selector),如: [receiver message]; 将被转换为:objc_msgSend(receiver, selector);转载 2015-03-16 13:23:09 · 431 阅读 · 0 评论 -
Object-C 类,对象,运行时
如果不是Apple,不是App Store,Object-C恐怕早就淡出人们的视线了。大部分编程语言都是基于C语法风格的,所以初次接触这个非C风格的语言,会看不懂它那怪异的语法。但如果掌握了它之后,也并不会觉得它又太多的不同。今天记录一下它的底层运作。 1: 类Class: typedef struct objc_class * Class; 从Class转载 2015-03-16 13:49:34 · 669 阅读 · 0 评论 -
【Objective-C Runtime动态加载】---动态创建类Class
a.使用objc_allocateClassPair创建一个类Class const char * className = "Calculator"; Class kclass = objc_getClass(className); if (!kclass) { Class superClass = [NSObject class];转载 2015-03-16 13:28:16 · 1193 阅读 · 0 评论