【SwiftUI】SwiftUIでUserDefaultsを使う

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

スポンサーリンク

環境

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

【Xcode】11.5
【Swift】5.2.4
【iOS】13.5
【macOS】Catalina バージョン 10.15.5
スポンサーリンク

カスタムクラスの作成

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

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

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

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

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

使用例

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

Formの表示

スポンサーリンク

あわせて読みたい記事

【Swift】UserDefaultsの使い方
アプリ内にデータを保存するUserDefaultsの使い方を解説します。
【SwiftUI】@ObservedObjectの使い方
データクラスの更新を監視する@ObservedObjectの使い方を解説します。これを利用すると複数のViewから同一インスタンスへの同期が可能になります。
Kindle unlimited 読み放題で読める管理人のおすすめ本です!
スポンサーリンク
SwiftUI
カピ通信