關于 init 的約定還有一個重要部分:這個方法可以(并且應該)通過返回 nil 來告訴調用者,初始化失敗了;初始化可能會因為各種原因失敗,比如一個輸入的格式錯誤了,或者另一個需要的對象初始化失敗了。 這樣我們就能理解為什么總是需要調用 self = [super init]。如果你的父類說初始化自己的時候失敗了,那么你必須假定你正處于一個不穩(wěn)定的狀態(tài),因此在你的實現(xiàn)里不要繼續(xù)你自己的初始化并且也返回 nil。如果不這樣做,你可能會操作一個不可用的對象,它的行為是不可預測的,最終可能會導致你的程序崩潰。
為什么要調用[super init]
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 繼承自:NSObject遵守協(xié)議:NSObject 一、概述(Overview) 一個 JSValue 實例是一個...
- 繼承自:NSObject遵守協(xié)議:NSObject導入聲明:@import JavaScriptCore;適用范圍...
- JSContext 繼承自:NSObject遵守協(xié)議:NSObject導入聲明:@import JavaScrip...
- 引言:本文不做具體闡述,只是記錄可參考資料。 蘋果官方: References:s Objective-C 開發(fā)指...
- 繼承自:NSObject遵守協(xié)議:NSObject導入聲明:@import JavaScriptCore;適用范圍...