
UserDefaults とは(swift言語)
◾️UserDefaults は、いろいろなデータを覚えておけます。たとえば:
ゲームでハイスコアを覚える
アプリでユーザーが選んだ設定(音のオンオフやテーマの色など)を保存
ログインした状態を記憶して、次にアプリを開いたときに再ログインしなくてもいいようにする
しかし、UserDefaults はとても便利ですが、大きなデータを保存するのには向いていません。ガーン、、、、
◾️UserDefaults に保存できるデータは?
文字列(テキスト)の場合、明確な上限は公式には示されていませんが、一般的な目安としては1MB(約1024KB)未満が推奨されています。
目安として:
アルファベットのみのテキスト:約1KBは1000文字前後。
日本語などのマルチバイト文字の場合:約1KBは500〜1000文字。
そのため、仮に1MBまでのテキストを保存する場合、単純なアルファベットであれば約100万文字程度、日本語のような文字では数十万文字程度まで保存できると考えられます。
◾️使い方(一例)
UserDefaults.standard.set("青", forKey: "favoriteColor")
//これで、「favoriteColor」という名前で「青」というデータが保存されます。
let color = UserDefaults.standard.string(forKey: "favoriteColor") print(color)
// 出力: 青
→ .string 部分は、UserDefaults から特定のデータを取得するためのメソッドです。この .string は、保存されているデータが「文字列(String)」型であることを期待して、そのデータを取り出すための方法として決められています。
他の例
以下のように、他のデータ型に対応するメソッドもあります:
.integer(forKey:) - 整数(Int)を取得
.double(forKey:) - 小数(Double)を取得
.bool(forKey:) - ブール値(Bool)を取得
.array(forKey:) - 配列(Array)を取得
.dictionary(forKey:) - 辞書(Dictionary)を取得
もしデータ型が違っていたら?
例えば、キー「greeting」に整数(Int)を保存していた場合に .string(forKey:) を使うと、文字列として取り出せないので、結果は nil になります。このため、保存したデータの型に合ったメソッドを使うことが重要です。