对象的初始化

来源:互联网 发布: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参数之间的跳离又是固定的,所以要这样使用。

0 0
原创粉丝点击