便利構(gòu)造函數(shù)
- 便利構(gòu)造函數(shù)允許返回nil揭糕, 正常的構(gòu)造函數(shù)一定會創(chuàng)建對象
判斷給定的條件是否符合條件,如果條件不符合直接返回nil锻霎, 減少內(nèi)存開銷 - 便利構(gòu)造函數(shù)中使用 ‘self.init’ 構(gòu)造當(dāng)前對象, 只有便利構(gòu)造函數(shù)才會調(diào)用self.init
沒有convenience關(guān)鍵字的構(gòu)造函數(shù)是負(fù)責(zé)創(chuàng)建對象的著角,反之用來檢測條件的,本身不負(fù)責(zé)創(chuàng)建對象 - 如果要在便利構(gòu)造行數(shù)中使用對象的屬性旋恼, 一定要在self.init 之后
class Person: NSObject {
var name: String?
var age: Int = 0
convenience init?(name: String, age: Int) {
if age > 100 {
return nil
}
self.init()
// 執(zhí)行到這里self才能被訪問吏口, 才能訪問到對象的屬性
self.name = name
}