2012-07-16 42 views
1

我有这样一个构造函数:iOS - 为什么调用一个空的构造函数会破坏程序?

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

我可以实例化这个类蛮好的对象,但我呼吁这个类的方法得到错误。为什么会这样?我在这里错过了什么?我应该调用超类的构造函数吗?或者有某种记忆问题?

谢谢!

+0

调用父类的构造函数? – TheZ 2012-07-16 18:40:36

+0

你没有任何回报。 ('id'是一个返回类型 - 一个指针) – Dima 2012-07-16 18:45:45

+0

编译器正在喷出警告,告诉你什么是错误.... – bbum 2012-07-16 19:57:06

回答

4

我在这里错过了什么?

您缺少对超类的指定初始值设定项的调用,selfreturn语句的赋值。

你最小的未完成的构造函数应该是这样的:

-(id) init 
{ 
    if (self=[super init]) { 
     // do something here...not sure what yet :) 
    } 
    return self; 
} 
1

你需要返回的东西,平时的自己,你指定你的方法的返回类型(ID),其在Objective-C可以是任何东西,但你必须返回一些东西。

一个典型的初始化是这样的:

-(id) init 
{ 
    self = [super init]; 
    if (self) { 
    // do something here...not sure what yet :) 
    } 
    return self; 
} 
相关问题