返回

深入探索 OC 对象分类:instance 实例对象与 class 类对象

IOS

Instance 实例对象与 Class 类对象

OC 对象可以分为两大类:Instance 实例对象和 Class 类对象。Instance 实例对象是通过类 alloc 出来的对象,每次调用 alloc,都会产生新的 instance 对象;alloc 方法是申请内存并创建实例对象;init 是自定义的初始化方法。Class 类对象是一个类的信息,它包含了类的属性、方法、协议等信息,是类的模板。

Instance 实例对象

Instance 实例对象是类的具体实例,它拥有自己的状态和行为。每个实例对象都有自己的一套实例变量,用于存储该对象特有的数据。实例对象还可以调用类的方法,来实现特定的功能。

Class 类对象

Class 类对象是类的模板,它了类的属性、方法、协议等信息。每个类都有一个对应的 Class 类对象,它包含了该类的所有信息。Class 类对象不能直接创建实例对象,但它可以用来获取类的信息,例如类的名称、属性和方法等。

对象类型

OC 对象的类型由它的 Class 类对象决定。每个对象都有一个 Class 类对象,它描述了该对象的类型。对象的类型决定了对象可以拥有的属性和方法。

内存管理

OC 对象的内存由 ARC(Automatic Reference Counting)自动管理。ARC 会跟踪对象的引用计数,当对象的引用计数为 0 时,ARC 会自动释放该对象所占用的内存。

初始化

Instance 实例对象在创建时需要进行初始化,以设置对象的初始状态。初始化可以通过 alloc 和 init 方法来完成。alloc 方法会申请内存并创建一个新的 instance 对象,init 方法会对 instance 对象进行初始化。

alloc 和 init 方法

alloc 和 init 方法是创建 Instance 实例对象必不可少的两个方法。alloc 方法负责申请内存并创建一个新的 instance 对象,init 方法负责对 instance 对象进行初始化。

alloc 方法

alloc 方法的语法如下:

- (instancetype)alloc;

alloc 方法会申请内存并创建一个新的 instance 对象,但不会对 instance 对象进行初始化。alloc 方法的返回值是一个指向 instance 对象的指针。

init 方法

init 方法的语法如下:

- (instancetype)init;

init 方法会对 instance 对象进行初始化,并返回一个指向 instance 对象的指针。init 方法可以被子类重写,以实现自定义的初始化逻辑。

实例变量

Instance 实例对象可以拥有自己的实例变量,用于存储该对象特有的数据。实例变量的声明和使用与普通变量类似,但需要注意的是,实例变量只能在该对象的内部使用,不能在其他对象中直接访问。

类变量

Class 类对象可以拥有自己的类变量,用于存储该类所有对象共享的数据。类变量的声明和使用与普通变量类似,但需要注意的是,类变量只能在该类的内部使用,不能在其他类中直接访问。

总结

OC 对象分为两大类:Instance 实例对象和 Class 类对象。Instance 实例对象是类的具体实例,它拥有自己的状态和行为。Class 类对象是类的模板,它描述了类的属性、方法、协议等信息。对象的类型由它的 Class 类对象决定。OC 对象的内存由 ARC(Automatic Reference Counting)自动管理。Instance 实例对象在创建时需要进行初始化,以设置对象的初始状态。初始化可以通过 alloc 和 init 方法来完成。alloc 方法会申请内存并创建一个新的 instance 对象,init 方法会对 instance 对象进行初始化。实例变量用于存储该对象特有的数据,类变量用于存储该类所有对象共享的数据。