Objective-C 日记⑧ 对象初始化
OC中创建对象的方法有两种:
[类名 new]
[[类名 alloc] int]
分配和初始化是两个分离的操作:来做NSObject的类方法alloc为对象分配一块内存区域并将其清零,实例方法init用于获得一个对象并使其运行
一、分配对象
分配:allocaton [,æləu'keiʃən] n. 分配,配置;安置:从操作系统获得一块内存并将其指定为存放对象实例变量的位置
alloc:某个类发送alloc消息时就是为该类分配一块足够大的内存,以存放该类的全部实例变量,同时alloc方法分配这块内存初始化都为0。例如:所有的BOOL类型变量初始化为NO,所有的int类型被初始化为0,所有的float类型变量被初始化为0.0,所有指针被初始化为nil。
注意
对象必须先分配再初始化最后才能使用
二、初始化对象
1、初始化initialization [i,niʃəlai'zeiʃən, -li'z-] n. 初始化;赋初值 :从操作系统中取得一块内存用于存储对象(初始化)
使用方式:
Car *car= [[Car alloc] init];
2、编写初始化方法
-(id) init { if(self=[super init]){ engine=[Engine new]; tires[0] =[Tires new]; tires[1]=[Tires new]; tires[2]=[Tires new]; } return (self); }
说明:
该声明中最新运行的是[super init],它的作用是使超类完成它们自己的初始化工作,之后使子类有机会实现初始化(如果[super init]不为nil)。最后将[super init]返回值赋给self。
记住:这个赋值操作只会影响该init方法中self的值不会影响该方法以外的任何内容
三、初始化函数
定义:
指定初始化函数:通常接受参数最多的初始化方法最终成为指定初始化函数
规则:
1、不需要为你自己的类创建初始化函数方法
2、如果构造一个初始化函数则一定要在你自己的指定初始化函数中调用超类的指定初始化函数
3、如果初始化函数不止一个,则要选择一个作为初始化函数。被选定的方法应该调用超类的指定初始化函数
四、总结
在初始化方法中,需要调用自己的指定初始化函数或超类指定的初始化函数。一定要将超类的初始化函数的值赋给self对象并返回给初始化方法的值。超类可能决定返回一个完全不同的对象。
作者:PEPE
出处:http://pepe.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述