对象的初始化
来源:互联网 发布:shell编程for循环 编辑:程序博客网 时间:2024/04/29 02:28
分配与初始化
对象的初始化有两种方法:一种是[类名new], 第二种是[[类名 alloc]init]。这两种方法是等价的,不过,通常的Cocoa惯例是使用alloc和init,而不使用new.一般情况下,Cocoa程序员只是在他们不具备足够的水平来熟练使用alloc和init方法时,才将new作为辅助方法使用。
[[类名alloc]init]有两个动作。alloc是分配动作,是从操作系统获得一块内存并将其指定为存放对象的实例变量的位置。同时,alloc方法还将这块内存区域全部初始化为0。与分配动作对应的是初始化。有如下两种初始化写法。
写法1 Car *car = [[Classalloc] init];
写法2 Car *car = [Car alloc];
[car init];
应该使用第一种写法,因为init返回的对象可能不是以前的那个。
2.编写初始化方法
下面是一段初始化的代码
-(id)init
{
if(self = [super init]){
engine =[Engine new];
…
}
}
使用self= [super init]的作用是使超类完成它们自己的初始化工作。同时因为init可能返回的是不同的对象,实例变量所在的内存位置到隐藏的self参数之间的跳离又是固定的,所以要这样使用。
- 对象的初始化块。对象初始化过程
- 对象的初始化
- C++对象的初始化
- 对象数组的初始化
- 子对象的初始化
- STL的对象初始化
- 对象的初始化
- 对象的初始化顺序
- 对象的初始化
- Java对象的初始化
- 对象的初始化
- 对象的初始化
- 05. 对象的初始化
- 对象的初始化
- 对象的初始化过程
- 对象的初始化过程
- 对象的初始化
- 对象的初始化方法
- ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
- AndroidStudio创建Module
- 放大图片
- POJ 3268 Silver Cow Party(Dijsktra+优先队列)
- 邮箱报错 端口错误
- 对象的初始化
- CGlib动态代理实战
- PHP常用函数
- 搜索字体变色
- CocoaPods详解之----制作篇
- C#中对字符串的加密和解密
- 11月更新的上百部 Google 技术视频
- 获取窗口高宽
- cocos2d-x 之sprite布局日记