[iPhone] UserDefaults データ保存

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

Swift 4.0
Xcode 9.2

 

データの保存

 
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をコードと紐付ければ出来上がりです。
 

 

サンプル動画

 

 
アプリに書き込んだ後で、アプリを終了させる動作がiPhone Xではちょっと面倒です。ただForegroundから消しだだけではまだ完全に終了していないのですね。
 
 
Ref:
UserDefaults – Foundation | Apple Developer Documentation

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




ページのトップへ戻る

シェアする

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

フォローする