[iPhone] UserDefaults データ保存


ユーザーの設定情報などちょっとしたデータを保存しておきたい場合などにはUserDefaultsを使う事で簡単にデータ保存ができます。

Swift 5.1
Xcode 11.3.1

データの保存

 
iOSアプリでデータを保存するには幾つかの方法があります。

  • UserDefaults
    • keyとそれに対応するvalueで簡単に実装可能
  • Core Data
    • データをレコード形式で保存しデータが大量なケースに向いている
  • KeyChain
    • セキュアなエリアに保存して重要なデータ保存に使われる

これ以外にもiCloudのようにサーバー上にデータを保存する方法や、オープンソースのRealmなどがあります。
ここでは、簡単で少量のデータ保存を想定したUserDefaultsの実装を試して見ます。


 

 

UserDefaults

 
基本的にはKey, valueの形式でXMLファイルで保存されています。高速にそれを読み書きするために(実際は時間がかかる)アプリ起動時に読み込んでキャッシュに入れていたりします。
 
そのため時々XMLファイルとキャッシュの同期を取っておく必要があります。
 
保存する場合はその書き込みを明示的に指示するために
synchronize()メソッドを実行します。
 
UserDefaultsを使ったデータの読み書きの概要です。
 

 

サンプルコード

 
まとめたコード例です。
TextFieldに入力したStringをUserDefaultsで保存。アプリを再起動させた初期画面には保存したデータを読み出して表示しています。また「Clear」ボタンを押すとデータがクリアされ初期値が表示されます。
 
ViewController.swift

 
これでLabel, TestField, Buttonをコードと紐付ければ出来上がりです。
 

 

サンプル動画

 

 
アプリに書き込んだ後で、アプリを終了させる動作がちょっと面倒です。基本的にはアプリは終了させないのがAppleの基本なので。その方がバッテリー消費がトータルで軽減されるということでしょう。

ただアプリが終了するという確たるものが欲しいのであえて終了させました。Foregroundから消しだだけでは待機状態なので
 
 
Ref:
UserDefaults – Foundation | Apple Developer Documentation

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする