我有这样一个构造函数:iOS - 为什么调用一个空的构造函数会破坏程序?
-(id) init
{
// do something here...not sure what yet :)
}
我可以实例化这个类蛮好的对象,但我呼吁这个类的方法得到错误。为什么会这样?我在这里错过了什么?我应该调用超类的构造函数吗?或者有某种记忆问题?
谢谢!
我有这样一个构造函数:iOS - 为什么调用一个空的构造函数会破坏程序?
-(id) init
{
// do something here...not sure what yet :)
}
我可以实例化这个类蛮好的对象,但我呼吁这个类的方法得到错误。为什么会这样?我在这里错过了什么?我应该调用超类的构造函数吗?或者有某种记忆问题?
谢谢!
我在这里错过了什么?
您缺少对超类的指定初始值设定项的调用,self
和return
语句的赋值。
你最小的未完成的构造函数应该是这样的:
-(id) init
{
if (self=[super init]) {
// do something here...not sure what yet :)
}
return self;
}
你需要返回的东西,平时的自己,你指定你的方法的返回类型(ID),其在Objective-C可以是任何东西,但你必须返回一些东西。
一个典型的初始化是这样的:
-(id) init
{
self = [super init];
if (self) {
// do something here...not sure what yet :)
}
return self;
}
调用父类的构造函数? – TheZ 2012-07-16 18:40:36
你没有任何回报。 ('id'是一个返回类型 - 一个指针) – Dima 2012-07-16 18:45:45
编译器正在喷出警告,告诉你什么是错误.... – bbum 2012-07-16 19:57:06