UserDefaults
のbool(forKey:)
やinteger(forKey:)
などはnullableでない値を返してくるため、設定されていなくてもfalse
や0
が返って来てしまう。
そういった場合に値が設定されているかを確認する場合は、object(forKey:)
を調べると良い。
let isEnabled: Bool?
if UserDefaults.standard.object(forKey: "isEnabled") == nil {
print("isEnabled is not set")
} else {
isEnabled = defaults.bool(forKey: "isEnabled")
}