目标C - 我如何从另一个类继承?

时间:2010-09-15 00:27:08

标签: objective-c inheritance

- (id) init
{
     [super init];
     //initialitation of the class
     return self;
}

我知道当我从另一个班级继承时,我想调用super.init

这是否适用于“继承自NSObject”?

2 个答案:

答案 0 :(得分:5)

是的,通常你有类似的东西:

- (id) init
{
    if (self = [super init]) {
        // instantiation code
    }

    return self;
}

答案 1 :(得分:0)

从技术上讲,是的,因为Apple的文档说init...方法应始终包含对super的调用。但是,目前NSObject -init的实现没有做任何事情,因此省略调用不会阻止您的代码工作。

忽略对super的调用的缺点是,您的代码对未来的更改不会那么健壮;例如,如果您以后更改了继承,或者(上帝禁止)Apple改变了NSObject的{​​{1}}方法,以便它实际上做了必要的事情。