這個問題在這里已經有了答案: Swift 中的隱式惰性靜態成員 1 個答案 昨天關門。
語境
我有一個Singleton應該在其私有初始化程式中執行一些設定邏輯。但是,此代碼不會在應用啟動時執行。
代碼
class SomeViewModel: ObservableObject {
static let shared = SomeViewModel()
private init() {
fatalError() // Just to test whether the Code gets executed.
}
}
問題
- 應用程式不會崩潰,
Fatal Error即使在初始化程式執行時也會發生這種情況。為什么會這樣?
uj5u.com熱心網友回復:
static let是懶惰的。shared在第一次呼叫訪問該屬性之前,它不會被初始化。因此,在您執行以下操作之前,您的應用不會崩潰:
let x = SomeViewModel.shared
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/531182.html
標籤:迅速单身人士
上一篇:靜態變數存盤在哪里?堆還是堆疊?
