概要
-
UserDefaultsのbool(forKey:)について
実装しようとしたこと
-
UserDefaultsを使った値でViewの表示制御をすることを考えた際にUserDefaultsがnilであった場合にfalseが入っていないとクラッシュするのでは?と考えた
実装したコード
.onAppear {
isEnabledShaking = UserDefaults.standard.bool(forKey: "isShakingEnabled") ?? false
}
remove ?? false
-
?? false以降はどんな条件でも実行されないからremoveしろとアラートで怒られている。はて。
仕様の確認
-
bool(forKey:)を使用する際に値がnilである場合は、自動的にfalseを返してくれるという仕様が存在するとのこと。 - ゆえにこの場合は明示的に
nilだったらfalseにするなと書かなくてよいらしい。
解決
.onAppear {
isEnabledShaking = UserDefaults.standard.bool(forKey: "isShakingEnabled")
}