我試圖來管理這樣一個變量:如果NSUserDefaults的從()獲取時let子句
var isFinished: Bool {
get {
return NSUserDefaults.standardUserDefaults().boolForKey("isFinished")
}
set {
NSUserDefaults.standardUserDefaults().setBool(newValue, forKey: "isFinished")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
這工作,但我試圖得到時使其更加安全通過使用if let
:「從‘布爾’到‘布爾’總是會成功的條件演員。」 :
var isFinished: Bool {
get {
if let isFinished = NSUserDefaults.standardUserDefaults().boolForKey("isFinished") as? Bool {
return isFinished
}
}
set {
NSUserDefaults.standardUserDefaults().setBool(newValue, forKey: "isFinished")
NSUserDefaults.standardUserDefaults().synchronize()
}
}
這雖然給一個黃色的錯誤
好吧:
if let isFinished = NSUserDefaults.standardUserDefaults().boolForKey("isFinished") {
return isFinished
}
現在更糟糕的是:「初始值設定條件結合必須有可選的類型,而不是‘布爾’」
什麼是處理這個正確的方式?
我希望他們改變這種情況,自選將是完美的這一點。 –
@TimVermeulen根據蘋果的建議,爲'NSUserDefaults'註冊默認值,根本不需要可靠的狀態選項。 – vadian
謝謝,我不知道這個! – nontomatic