我有一个像这样的构造函数:
-(id) init
{
// do something here...not sure what yet :)
}
我可以很好地实例化这个类的对象,但是我在这个类上调用方法时遇到错误。为什么会这样?我在这里错过了什么?我应该调用超类构造函数吗?或者是否有某种记忆问题?
谢谢!
答案 0 :(得分:4)
我在这里缺少什么?
您缺少对超类的指定初始值设定项的调用,对self
的赋值以及return
语句。
你的最小未完成构造函数应如下所示:
-(id) init
{
if (self=[super init]) {
// do something here...not sure what yet :)
}
return self;
}
答案 1 :(得分:1)
你需要返回一些东西,通常是self,你指的是你的方法返回类型(id),在objective-c中可以是任何东西,但你必须返回一些东西。
典型的init看起来像这样:
-(id) init
{
self = [super init];
if (self) {
// do something here...not sure what yet :)
}
return self;
}