在Objective-C中创建构造函数

时间:2011-07-03 19:01:25

标签: iphone objective-c ios constructor

为什么我们总是在Objective C中创建构造函数时这样做?

self = [super init];
if ( self ) {
    //Initialization code here
}

4 个答案:

答案 0 :(得分:10)

您可以使用

在objective-c中创建构造函数和析构函数
-(id) init
{
    self = [super init];
    if(self)
    {
       //do something
    }
    return self;
}
-(void) dealloc
{
   [super dealloc];
}

答案 1 :(得分:7)

我们重新分配给self,因为允许[super init]返回与调用它不同的对象。我们if (self)因为[super init]被允许返回nil

答案 2 :(得分:1)

self是一个基于某个超类的类(例如UIViewController,NSObject - 请参阅您的接口文件以确定哪个超类)。超类可能需要某种形式的初始化,以便子类按预期工作。因此,首先初始化超类,我们确保设置默认属性等。如果不首先初始化超类,我们可能会遇到一些非常意外的行为,尤其是在更复杂的对象(如ViewControllers等)中。

答案 3 :(得分:0)