【SwiftUI】SwiftUIでUserDefaultsを使う

(2020/11/8 更新)

SwiftUIでUserDefaultsを使う方法を解説します。

スポンサーリンク

環境

この記事の情報は次のバージョンで動作確認しています。

【Xcode】12.1
【Swift】5.3
【iOS】14.1
【macOS】Catalina バージョン 10.15.7
スポンサーリンク

カスタムクラスの作成

SwiftUIではデータを保持するカスタムクラスを用意して、UserDefaultsへのアクセス処理を全てまとめてしまうのがスマートです。

以下はユーザー名(username)とレベル(level)を保持するカスタムクラスの例です。

SwiftUIの監視対象とする為、ObservableObjectプロトコルに準拠したクラスとし、各プロパティには@Published属性を付加しています。

UserDefaultへのアクセス処理は、次の2点です。

  • 初期化処理(init)で初期値の読み込み。
  • didSetで各プロパティの値が更新されたタイミングで保存。
スポンサーリンク

使用例

作成したカスタムクラス(UserProfile)を使用した例です。
Viewとデータの同期を取るため、 @ObservedObject属性を付加して、インスタンスを宣言します。

Formの表示

スポンサーリンク

あわせて読みたい記事

【Swift】UserDefaultsの使い方
アプリ内にデータを保存するUserDefaultsの使い方を解説します。
【SwiftUI】@ObservedObjectの使い方
(2020/11/28 更新) SwiftUIのデータバインディングの仕組みの一つで、データクラスの更新を監視する@ObservedObjectの使い方を解説します。 これを利用すると複数のViewから同一インスタンスへの同期が可能になりま...