之外init方法我有一個迅速類斯威夫特初始化存儲屬性類問題
class ApplicationManager {
var fanMode: FanMode
init()
{
self.applyDefaultSettings()
}
func applyDefaultSettings()
{
if let unwrappedFanMode = userDefaults.valueForKey(Consts.kStoredFanMode) as? FanMode {
self.fanMode = unwrappedFanMode
}
}
}
上面的代碼拋出了這個問題:
Use of 'self' in method call 'applyDefaultSettings' before all stored properties are initialized
我應該怎麼做嗎?所以消息說我需要在調用任何其他類的方法之前初始化所有存儲的屬性。所以這意味着在init方法中,我應該初始化至少fanMode屬性。但我希望有一種方法爲我的屬性應用一種默認設置,以提供簡單的可讀性和乾淨的代碼體系結構。但也許可以使用類的初始化器來初始化所有需要的字段。
看看,在你的代碼邏輯可能的情況下,fanMode將被初始化。 –