iOSのアプリでは、データの保存をしていないと、タスクキルをするたびに、行った操作がリセットされる。そのため、データの保存と呼び出しが必要となる。
データの保存のやり方
sample.swift
//objectsというデータを保存したい場合
UserDefaults.standrad.set(objects, forKey: String)
objectを定義している場所によっては、self.objectsとする。
[forKey: String]の部分は、[forKey: "Store1"]のように自分で名前をつける。
この場合だと、以下のように書く。
sample.swift
//objectsというデータを保存したい場合
UserDefaults.standrad.set(objects, forKey: "Store1")
これは、Store1にobjectsを保存するということである。
新しくobjectsを更新するたびに、同じように保存すれば、Store1も更新される。
同じキーに2回以上保存を行った場合は、古いデータは消え、一番最新のデータのみ保持する。
*UserDefaulsによるデータの保存は保持できる型は決まっている。そのため、保持できない型は型変換などを行って保持する必要がある。
*構造体の保存も可能である。(やり方は別方法)
データの呼び出し
sample.swift
//Store1の中身をString型で保持している場合
let load = UserDefauls.standard.object(forKey: "Store1")
if (load as? String != nil {
self.objects = load as! String
}
データの保存が1つだけというのは基本的に少ないと思うので、配列などを使うと思う。
sample.swift
var objects = [Any]()
配列を用いる場合は、以下のようにするだけである。
sample.swift
//Store1の中身をString型で保持している場合
let load = UserDefauls.standard.object(forKey: "Store1")
if (load as? [String] != nil {
self.objects = load as! [String]
}