アプリの設定の保存と読み出し(簡易版)

ちょっとしたコードや設定などですが、忘れがちであらためて調べるのも面倒なので、忘備録的なものです。
順不同で、気づいたものから順にSwift4で使えるコードを載せていきます。

Swift-Tips

アプリ設定の保存と読み出し

単純な設定はuserDefaultsを利用する
・userDefaultsへの読み書き
・Keyを定義しておくこと
・読み出しは値の型により関数が異なる


    let KEY_A_NAME = "Key_A_Name"
    let userDefaults = UserDefaults.standard

    // writeの例

    userDefaults.set(Name_A, forKey: KEY_A_NAME)

    // read の例

    let Key_A = userDefaults.string(forKey: KEY_A_NAME)
    let Key_A = userDefaults.bool(forKey: KEY_A_NAME)
    let Key_A = userDefaults.integer(forKey: KEY_A_NAME)
    let Key_A = userDefaults.object(forKey: KEY_A_NAME) as? Date

UIColorはそのままでは保存できないのでextensionでUIColor用の関数を作る

・UIColorを保存するためのextension


extension UserDefaults {
    
    func colorForKey(_ key: String) -> UIColor? {
        var color: UIColor?
        if let colorData = data(forKey: key) {
            color = NSKeyedUnarchiver.unarchiveObject(with: colorData) as? UIColor
        }
        return color
    }
    
    func setColor(_ color: UIColor?, forKey key: String) {
        var colorData: Data?
        if let color = color {
            colorData = NSKeyedArchiver.archivedData(withRootObject: color)
        }
        set(colorData, forKey: key)
    }
    
}