在Swift中,在创建对象

时间:2015-08-18 16:35:52

标签: swift class initialization convenience-methods

我对如何使用便利初始化程序和指定的初始化程序了解一点。这是一个名为ClassA的示例类

class ClassA {
    var number:Int

    convenience init(){
        self.init(newNumber: 10)
    }

    init(newNumber: Int) {
        self.number = newNumber;
    }
}

这个类运行良好但是在实现另一个名为Base的类时遇到了一些麻烦。这是代码:

class Base {
    var classObject:ClassA

    init(object: ClassA) {
        self.classObject = object
    }

    convenience init(){
        self.init(object: ClassA.init())
    }
}

在类Base的便捷初始值设定项中,我调用了ClassA的便捷初始值设定项,并将其作为Base的指定初始值设定项的参数。

但是,我遇到两个语法错误。

  1. 类型名称后的预期成员名称或构造函数调用。
  2. ()不可转换为A类。
  3. 如果我使用

    self.init(object: ClassA.init(newNumber: 10))
    

    而不是

    self.init(object: ClassA.init())
    

    然后第一个错误消失。看来ClassA的便利初始化程序无法识别。

1 个答案:

答案 0 :(得分:1)

尝试使用self.init(object: ClassA())