深入探索 OC 对象分类:instance 实例对象与 class 类对象
2023-09-08 18:05:35
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 对象进行初始化。实例变量用于存储该对象特有的数据,类变量用于存储该类所有对象共享的数据。