快速对象初始化

Sav*_*iya 0 initialization swift

从下面快速给出对象初始化的良好实践是什么?又为什么呢?

1.在声明时初始化

class MyClass {
    var object: MyObject = MyObject()
}
Run Code Online (Sandbox Code Playgroud)

2.初始化init()

class MyClass {

    var object: MyObject

    init() {
        object = MyObject()
    }
}
Run Code Online (Sandbox Code Playgroud)

如果还有其他方法,请随时提出建议。

Dáv*_*tor 5

在这种简单情况下,最好object在声明时在right处分配一个值,而无需在的初始化程序中进行设置MyClass

因此,您可以简单地执行以下操作:

class MyClass {
    let object = MyObject()
}
Run Code Online (Sandbox Code Playgroud)

但是,可能会有更复杂的情况,例如当MyObject它本身具有带有输入参数的初始化程序时,这种情况仅MyClass在您无法object在声明时进行初始化的初始化时才知道,因此您需要在中进行初始化MyClass

class MyObject {
    let prop: String

    init(_ prop:String){
        self.prop = prop
    }
}

class MyClass {
    let object: MyObject

    init(objectProp:String){
        self.object = MyObject(objectProp)
    }
}
Run Code Online (Sandbox Code Playgroud)