徒然エンジニアブログ

徒然エンジニアブログ

理系東大生がプログラミングを中心に様々なことについて情報発信していきます!

【Swift】 UserDefaultsを使ったデータの保存!

今回はuserdefalutを使ったデータの保存の仕方を紹介していきたいと思います。

CoreDataとUserDefaultsは何が違うのか?

以前CoreDataの使い方を説明しましたが
turedureengineer.hatenablog.com


今回のUserDefaultsと何が違うのでしょうか?

さまざな違いがあります。

まず一つ目にUserDefaultsには決まったか確か保存することができません。
この画像を見てください。
f:id:turedureengineer:20181218135641p:plain

これを見てわかる通り、Float型、Double型、Int型、Boolean型、URL型とそれらのArray型しか保存することができません。
自作クラスのものなどは登録することができないのです。


またCoreDataはデータベースを使っているため、大規模なデータの保存に向いていると言えます。
自作クラスを保存したい時はこちらを使うしかありません。


少しのデータの保存を気軽に行いたいならUserDefaluts、大規模なデータだったり自作クラスのデータを保存したい時はCoreDataと使い分けるようにしましょう。

保存の仕方

以下のコードで保存することができます。

UserDefaults.standard.set(10, forKey: "keyName")

これでkeyNameという名前でint型の数字10を保存することができます。
型は勝手に推論してくれるので保存する時点では書かなくてもいいです。
上に書いたものならなんでも保存できます。


keyNameはString型を使います。
保存したデータを取り出すときにも同じキーを使います。
同じ文字列を何回も書くことは賢くないので

let keyName = "keyName"

などとして変数に入れておくといいと思います。

読み込みの仕方

こちらも非常に簡単です。
以下のコードでできます。

let savedNumber = UserDefaults.standard.integer(forKey: "keyName")

このように読み取るときには型を指定してあげる必要があります。
integer、double、float、bool、String、urlなどを上のintegerと取り替えれば良いだけです。


これだけでデータを保存し、永続化できるのでとても簡単ですね。