今天聽到坐在我旁邊的 Ray 提到便捷初始化語法,我驚了,事實上我完全不知道那是什麼,我知道初始化,但是...
指定的初始化程序是創建類型的新實例的默認方法。還有其他一些被稱為便捷初始化器,可以幫助您更輕鬆地完成常見任務,但是這些是您指定的初始化器的補充,而不是替代的。
蘋果官方對於 Designated Initializer 和 Convenience Initializer 提出了三條規則。
Designated Initializer 可以呼叫它父類別的 Designated Initializer。
Rule 1
A designated initializer must call a designated initializer from its immediate >superclass.
Convenience Initializer 可以呼叫其它 Convenience Initializer 。
Rule 2
A convenience initializer must call another initializer from the same class.
Convenience Initializer 最終必須呼叫 Designated Initializer。
Rule 3
A convenience initializer must ultimately call a designated initializer.
在寫程式中,初始化 (Initializer) 是我們最不可避免的函式,我們往往會寫了一堆函式來初始化物件,但為了重複利用,所以我們常常會呼叫最基本的初始化函式,來節省我們開發的時間。但在 Swift 中,將初始化分為 Designated Initializer 和 Convenience Initializer,使用方法如何呢?讓我們直接來實際看例子來做一個簡單的教學。
來源:https://www.inote.tw/swift-designated-convenience-initializer
init(){}
convenience init(_ loadingVC:UIViewController){
self.init()
loadingDelegate = loadingVC
}
這是個很經典的便捷初始化器