我对如何使用便捷初始化器和指定初始化器有所了解。这里是一个名为 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 的指定构造器的参数。
但是,我得到两个语法错误。
- 类型名称后的预期成员名称或构造函数调用。
- () 不可转换为 A 类。
如果我使用
self.init(object: ClassA.init(newNumber: 10))
代替
self.init(object: ClassA.init())
然后第一个错误消失了。似乎无法识别 ClassA 的便利初始化程序。