SwiftでUserDefaultsを利用すると、今回起動時のデータを記録して、次回起動時にそれを読み込んで利用することができます。
読み込むタイミングは、アプリ起動時か、前回のデータを利用したいViewのロード時になるかと思います。
保存するタイミングは、アプリ終了時か、Viewの終了時になるかと思います。
また一番最初には保存したデータがないので、ものによってはnilが返されますので、その場合どうするかを考えておかないと行きません。
サンプルでは、nilの時は空文字列や、空の配列などをセットするようにしています。
class ViewController: UIViewController { //UserDefaultsのインスタンスをここで取得しておく let ud: UserDefaults = UserDefaults.standard var udData01: String = "" var udData02: Int = 0 var udData03: [String] = [] var udData04: [String : Int] = [:] var udData05: [UIColor]? = [] override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //UserDefaultsより読み込む loadUserDefaults() //データの書き換え changeData() //UserDefaultsを書き込む saveUserDefaults() } //UserDefaultsより読み込むメソッド func loadUserDefaults() { //文字列 udData01 = ud.string(forKey: "01") ?? "" //数値データ udData02 = ud.integer(forKey: "02") //配列 udData03 = ud.array(forKey: "03") as? [String] ?? [] //辞書型 udData04 = ud.dictionary(forKey: "04") as? [String:Int] ?? [:] //そのままではUserDefaultsに保存できない型 var arData: [Data]? = [] arData = ud.array(forKey: "myColors") as? [Data] self.udData05?.removeAll() self.udData05 = [] for i in 0 ..< 20 { if let data = arData?[i] { //ここでUIColorに戻しています。 let localColor: UIColor = NSKeyedUnarchiver.unarchiveObject(with: data) as! UIColor self.udData05!.append(localColor) } } } //UserDefaultsに書き込むメソッド func saveUserDefaults() { //保存は基本の型のは同じ構文 ud.set(udData01, forKey: "01") ud.set(udData02, forKey: "02") ud.set(udData03, forKey: "03") ud.set(udData04, forKey: "04") //そのままではUserDefaultsに保存できない型 var arData: [Data] = [] for i in 0 ..< 20 { //ここでUserDefaultsに保存できるように変換しています。 let localData: Data = NSKeyedArchiver.archivedData(withRootObject: self.udData5![i]) arData.append(localData) } ud.set(arData, forKey: "myColors") } //データを書き換えるメソッド func changeData() { udData01 = "ABC" udData02 = 100 udData03 = ["abc", "DEF", "GHI", "JKL"] udData04["a"] = 20 udData04["b"] = -30 udData04["z"] = -10000 } }