- (id) init
{
[super init];
//initialitation of the class
return self;
}
我知道当我从另一个班级继承时,我想调用super.init
这是否适用于“继承自NSObject”?
答案 0 :(得分:5)
是的,通常你有类似的东西:
- (id) init
{
if (self = [super init]) {
// instantiation code
}
return self;
}
答案 1 :(得分:0)
从技术上讲,是的,因为Apple的文档说init...
方法应始终包含对super
的调用。但是,目前NSObject
-init
的实现没有做任何事情,因此省略调用不会阻止您的代码工作。
忽略对super
的调用的缺点是,您的代码对未来的更改不会那么健壮;例如,如果您以后更改了继承,或者(上帝禁止)Apple改变了NSObject
的{{1}}方法,以便它实际上做了必要的事情。