Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 507 - UserDefaults

データ保存に関する簡単な説明に触れる機会があった。Data Storageというプロジェクトを作って、ViewControllerでデータ保存の手順の説明を受けたので復習します。

データ保存には、アプリ内保存とアプリ外保存(ネット上も含め)の2通りの方法がありますが、UserDefaults*1クラスを使う方法はアプリ内でデータを保存する基本です。シングルトン・パターンで使用する重要性は必ず理解してください

import UIKit

class ViewController: UIViewController {
    
    var array = [1, 2, 3, 4]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        UserDefaults.standard.set("屋台ブルー", 
                                  forKey: "name")
        
        let userName = 
            UserDefaults.standard.object(
                forKey: "name") as? String ?? ""
        
        print(userName)
        
        UserDefaults.standard.set(array, forKey: "myArray")
        
        let userArray = 
            UserDefaults.standard.object(
                forKey: "myArray") as? [Int] ?? []

        // 「guard」を使う方法もあるかも
        //  guard let userArray = 
        //      UserDefaults.standard.object(
        //          forKey: "myArray") as? [Int] else {
        //  
        //      return print("no value")
        //  }
        
        for i in userArray {
            print(i)
        }
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
}

データ保存をするときにUserDefaultsの定数化や変数化も必要ないということです。過去の自分のブログも読み返してみるとUserDefaultの使用法がなんとなく見えてきました。データ保存のプログラミング設計をじっくり考える必要があります。

*1:以前はNSUserDefaultsクラスでしたがiOS10から変更