SwiftでUISwitchの値をUserDefaultsに保存する
`UserDefaults`を使用して、`UISwitch`の値を保存し、後で取得する方法は以下のとおりです。
### 値の保存
`UISwitch`の値が変更されるたびに、この値を`UserDefaults`に保存することができます。
@IBAction func switchValueChanged(_ sender: UISwitch) {
let userDefaults = UserDefaults.standard
userDefaults.set(sender.isOn, forKey: "switchValue")
userDefaults.synchronize()
}
このコードは、`UISwitch`の値が変更されるたびに呼び出される必要があります。Interface Builderで`UISwitch`をセットアップしている場合、このメソッドを`Value Changed`イベントに接続することができます。
### 値の取得
アプリを再起動した後など、後でこの値を取得するために以下のようにします。
let userDefaults = UserDefaults.standard
let savedSwitchValue = userDefaults.bool(forKey: "switchValue")
この`savedSwitchValue`変数には、保存された`UISwitch`の値が含まれます。最初の起動など、この値がまだ保存されていない場合、`bool(forKey:)`メソッドは`false`を返します。
### 例:初回ロード時に値をセットする
以下のように、`viewDidLoad`内で保存された値を`UISwitch`にセットすることもできます。
override func viewDidLoad() {
super.viewDidLoad()
let savedSwitchValue = UserDefaults.standard.bool(forKey: "switchValue")
yourSwitch.isOn = savedSwitchValue
}
ここで、`yourSwitch`は、対象となる`UISwitch`へのアウトレット接続であると仮定しています。