公開中のアプリ

[Xcode11・Swift5]メモアプリを作る#17

※この記事は初心者の方や初めてアプリを作る人を対象にしています。
動作環境 Xcode Version 11.4 Swift version 5.2

残すところ後2回になりました!
今回から2回に分けて、データの保存ができるようにしたいと思います。

シュミレーターでアプリを終了させてみよう

シュミレーターでアプリを終了させるには、「Command + Shift」を押しながら「h」を素早く2回押して、上にスワイプさせればアプリを終了させる事ができます。
(SEではうまくいかなかったので、11とかで試して見て下さい)
動画を見てもらえれば削除したメモがもとに戻ってるのがわかると思います。

UserDefaultsを使ってみよう

データを保存するには色々やり方があるのですが、今回はUserDefaultsと言う仕組みを使います。

UserDefaultsは本来アプリの設定項目などをディスクに保存しておくの為らしいのですが、ちょっとしたデータを保存する時にもよく使われるみたいです!

今回は「MemoTableViewController.swift」を編集していきます。

class MemoTableViewController: UITableViewController {

let userDefaults = UserDefaults.standard
var memos = [String]()
//var memos = ["まゆげじお", "F-chan", "D-matsuo"]

まずは3行目でUserDefaultsのインスタンスを生成しています。
次に4行目で「配列memos」を空にしておきます。

次は「MemoTableViewController.swift」の「viewDidLoadメソッド」を編集します。

override func viewDidLoad() {
super.viewDidLoad()

 if self.userDefaults.object(forKey: "memos") != nil {
           self.memos = self.userDefaults.stringArray(forKey: "memos")!
       } else {
           self.memos = ["まゆげじお", "F-chan", "D-matsuo"]
       }
}

流れとしては、アプリが立ち上がった時にUserDefaultsにデータが入っているかどうかを「viewDidLoadメソッド」の中で確認して、入っていればデータを呼び出すと言う流れです。

UserDefaultsはキーと値でデータを保存します。
今回はキーを「memos」としておきましょう!

4行目のif文でUserDefaultsの中にデータが入っているか条件分岐しています。

・データが入っていれば「配列memos」にUserDefaultsのデータを代入。
文字列の場合は「stringArray」を使うようです。

・データが入っていなければ、初期値を適当に入れてあげます。

では「Command + r」でシュミレーターを立ち上げて確認してみて下さい。
立ち上がった時のメモが初期値だったら今回はOKです!

まとめ

今回はUserDefaultsを使って、アプリが立ち上がった時にUserDefaultsのデータをセットする方法を説明しました。

でもこのままではデータをUserDefaultsに保存する処理を書いていないので次回その説明をしたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

アプリ