UserDefaultsは少量のデータを永続的にアプリ内部で保存できます。
暗号化はされていないためユーザー情報等の保存には向きません。
容量は4194304bytes。アプリ削除で共に消えます。
アプリの設定等の簡単なデータ管理に使うのが良いかもしれません。
AppStorage
UserDefaultsの扱いを簡単にしたもの、そのままViewを跨いで自動保存される変数として使える
※扱いが簡単なだけに微妙な動きもするみたいです。自分はまだその状態に陥っていないのでよくわかっていません。
1 |
@AppStorage("キー") var a: Bool = false |
keyの誤字
keyの誤字は検知されない、通常の変数は宣言されていないものを使おうとするとIDEに怒られるがUserDefaultsはスルーされる
1 2 3 4 |
var i: Int = 111 UserDefaults.standard.set(i, forKey: "aaa") let j: Int = UserDefaults.standard.integer(forKey: "aa") //NG、keyのタイプミスが指摘されず0が入る、数値型以外はオプショナル型のnil設定次第 |
メソッド
1 2 3 4 5 6 |
UserDefaults.standard.set(保存する変数, forKey: "キー") //データ保存 UserDefaults.standard.integer(forKey: "キー") //読み込み UserDeafaults.standard.removeObject(forKey: "キー") //削除 let appDomain = Bundle.main.bundleIdentifier UserDefaults.standard.removePersistentDomain(forName: appDomain!) //データの一括削除 |
扱える型一覧
1 2 3 4 5 6 7 8 9 10 11 |
UserDefaults.standard.object(forKey: "キー") UserDefaults.standard.string(forKey: "キー") UserDefaults.standard.array(forKey: "キー") UserDefaults.standard.dictionary(forKey: "キー") UserDefaults.standard.data(forKey: "キー") UserDefaults.standard.stringArray(forKey: "キー") UserDefaults.standard.integer(forKey: "キー") UserDefaults.standard.float(forKey: "キー") UserDefaults.standard.double(forKey: "キー") UserDefaults.standard.bool(forKey: "キー") UserDefaults.standard.url(forKey: "キー") |
保存場所
/AppData/Library/Preferences/ 内の [bundle-identifier].plist
コメント