【问题标题】:Link superclass init method to designated initializer将超类 init 方法链接到指定的初始化程序
【发布时间】:2012-04-06 08:54:25
【问题描述】:

由于每个类都从超类继承初始化程序,这就是我链接的方式 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......"];
}

【问题讨论】:

    标签: iphone objective-c ios init


    【解决方案1】:

    如果你只用initWithItemName 初始化你的对象,那么你根本不需要定义init 方法。初始化器只是普通的方法(不涉及魔法),所以你调用的是什么将被调用。但是最好实现init 方法,这样它就可以被调用并且对象将处于一致的状态。

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2016-05-10
      相关资源
      最近更新 更多