1

我有一个这样的构造函数:

-(id) init 
{
    // do something here...not sure what yet  :)
}

我可以很好地实例化这个类的对象,但是我在这个类上调用方法时遇到错误。为什么会这样?我在这里想念什么?我应该调用超类构造函数吗?还是以某种方式存在内存问题?

谢谢!

4

2 回答 2

4

我在这里想念什么?

您缺少对超类的指定初始化程序的调用、对 的赋值selfreturn语句。

您的最小未完成构造函数应如下所示:

-(id) init 
{
    if (self=[super init]) {
        // do something here...not sure what yet  :)
    }
    return self;
}
于 2012-07-16T18:40:23.120 回答
1

你需要返回一些东西,通常是self,你指定你的方法返回类型(id)在objective-c中可以是任何东西,但你必须返回一些东西。

典型的初始化如下所示:

-(id) init 
{
    self = [super init];
    if (self) {
    // do something here...not sure what yet  :)
    }
    return self;
}
于 2012-07-16T18:41:17.370 回答