初めに
アプリの着せ替えなどの機能でユーザがアプリの背景色を選ぶなどの機能があります。
そういった時に色のローカル保存が必要になります。
UiColorなのであることをしないとUserDefaultが使えません。
今回はそのあることを紹介させていただきます。
実装
まずは保存側
以下の通りですがシリアライズ化しのちにUserDefaultを使います。
TestViewController.swift
// UIColorデータをシリアライズ化しユーザデフォルトに保存する
let SaveColor = NSKeyedArchiver.archivedData(withRootObject: UIColor.rgba(red: 97,green: 167,blue: 246,alpha: 1))
UserDefaults.standard.set(SaveColor, forKey: "SaveUIColor")
UserDefaults.standard.synchronize()
呼び出し側です。
保存先のKeyにデータが入っているか確認し、デシリアライズし使えるようにするのをやっているだけです。
背景色を変えるコードも入れています。
MainViewController.swift
if let SetColor = UserDefaults.standard.object(forKey: "SaveUIColor") as? Data {
// UIColorのローカルデータをデシリアライズし、UIColorローカルデータをUIColorオブジェクトに代入できるようにする
if let reloadColor = NSKeyedUnarchiver.unarchiveObject(with: SetColor) as? UIColor {
//背景に保存した画像をセットする
view.backgroundColor = reloadColor
}
}
終わりに
やっていることは簡単です。
今回のあることとはシリアライズのことでしたね。
引っ張ってすいません。
シリアライズについては位置情報取得するときとかによく出てくる単語なので説明は割愛させていただきます。
ここまでご視聴いただきありがとうございました。