Designated Initializers(指定構(gòu)造器)
Convenience Initializers(便捷構(gòu)造器)
1、Struct 沒(méi)有設(shè)置構(gòu)造函數(shù)時(shí),會(huì)默認(rèn)有一個(gè)?Memberwise Initializers(逐一函數(shù))。
2、給存儲(chǔ)型類型屬性賦默認(rèn)值或在初始構(gòu)造器中設(shè)置初始值時(shí),此屬性的屬性觀察者不會(huì)被調(diào)用。
3、構(gòu)造器的第一個(gè)內(nèi)部參數(shù)名也會(huì)默認(rèn)作為其外部參數(shù)名供調(diào)用,這點(diǎn)與其他函數(shù)不同。
4、在初始化一個(gè)類、結(jié)構(gòu)體、枚舉時(shí),調(diào)用其構(gòu)造方法,也僅僅是調(diào)用構(gòu)造方法。
5、構(gòu)造器代理:可以在構(gòu)造方法里應(yīng)用本類的其他構(gòu)造方法。
6、在結(jié)構(gòu)體(Struct)的擴(kuò)展里寫(xiě)自定義構(gòu)造器,不會(huì)覆蓋系統(tǒng)默認(rèn)的Memberwise Initializers,但是如果未卸載擴(kuò)展里面,則會(huì)覆蓋。
7、指派構(gòu)造函數(shù)初始化時(shí),應(yīng)先將自身的屬性對(duì)象賦值,然后再調(diào)用父類的指派構(gòu)造函數(shù)。
8、便利構(gòu)造器,只能在Class中使用
9、復(fù)寫(xiě)默認(rèn)init方法,之前標(biāo)注private,只能對(duì)非當(dāng)前文件有效,在當(dāng)前文件中,如extension中,依舊可以調(diào)用該init方法