runtime
文章平均质量分 89
程序员的修养
好好学习
展开
-
关联对象的实现
关联对象的实现介绍我们在开发中都使用过category,并且都了解category不能添加属性,因为在runtime时候,类的成员变量已经固定,并且categery的底层实现中没有设置存放成员变量的逻辑,所以无法给category添加属性,如果要添加属性需要使用关联对象来处理添加objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)获取objc_getAs原创 2021-04-12 10:55:50 · 318 阅读 · 0 评论 -
load方法研究
load函数应该知道的事情一、load介绍类和分类的load方法是类或者分类被加载到runtime时被调用,并且只调用一次。类和分类的load方法都会调用。而“类或者分类被加载到runtime时”时动态链接阶段,此时main函数还未执行。load 方法的运行时间过早,所以这里可能不是一个理想的环境,因为某些类可能需要在在其它类之前加载,但是这是我们无法保证的。但是,framework以及动态库是先加载的,所有库加载完成之后,才会执行运行时的load方法,所以在load方法中调用 framework原创 2021-03-31 11:35:30 · 782 阅读 · 0 评论 -
Runtime--isa_t
Runtime–isa_t通过上一篇的文章,我们了解到类、协议都继承自objc_object,在这个结构中只有一个变量–isa,它是isa_t类型,并且对象结构中很多方法都是对isa的操作,所以我们单独介绍一下这个变量。struct objc_object {private: isa_t isa;public: // ISA() assumes this is NOT a tagged pointer object Class ISA(); // getIsa(原创 2021-03-24 14:48:54 · 96 阅读 · 0 评论 -
runtime系列--基本数据类型
一、runtime基本数据类型1、实例变量/// An opaque type that represents an instance variable.typedef struct objc_ivar *Ivar;2、属性/// An opaque type that represents an Objective-C declared property.typedef struct objc_property *objc_property_t;3、类的实例/// Represents原创 2020-10-21 14:16:17 · 269 阅读 · 0 评论