将超类init方法链接到指定的初始化程序

时间:2012-04-06 08:54:25

标签: iphone objective-c ios init

由于每个类都从超类继承初始值设定项,因此这是我链接的方式 init到其指定初始值设定项的默认实现。 (它正在发挥作用。)

链接:

-(id)init {
    return [self initWithItemName:@"Default Value" 
                    valueInDollar:0 
                     serialNumber:@""];
}

初​​始化器:

-(id)initWithItemName:(NSString *)myItemName
        valueInDollar:(int)myValueInDollar
         serialNumber:(NSString *)mySerialNumber;

我的问题是,我是否总是必须按照我的方式(链接)链接我自己的初始化程序? 那么没有下面的代码,永远不会调用自己的初始值设定项?我是对的吗?

-(id)init {
    return [self myInitMethod......"];
}

1 个答案:

答案 0 :(得分:1)

如果您只使用initWithItemName初始化对象,则根本不需要定义init方法。初始化器只是普通的方法(不涉及魔法),所以你所调用的是将被调用的内容。但是,优良作法是实现init方法,以便可以调用它,并且对象将处于一致状态。