【Swift】UserDefaultsに値を保存・取り出す方法

 

完成図

 

 

解説

 

・UserDefaults:アプリ内に値を保存する

・UserDefaults.standard.set(保存したい値, forKey:"好きなキー"):値を保存

・UserDefaults.standard.object(forKey:"好きなキー" ):setで設定した同じキーを入力

・let 変数 = UserDefaults.standard:これ以降、変数.set, 変数.object、と省略できる

 

・値を取り出すときは、変数 : String = UserDefaults.standard.object(...) 、とそのまま代入できる

 

※注意点

・アプリを削除すれば、保存したデータも削除される

 

ストーリーボード

 

f:id:nekokichi_yos2:20181013233427p:plain

 

ソースコード

 

import UIKit

class ViewController: UIViewController,UITextFieldDelegate {
    
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        //もしUserDefaultsに値が登録されてるなら
        if let _ = UserDefaults.standard.object(forKey: "text") as? String {
            //labelに表示
            label.text = (UserDefaults.standard.object(forKey: "text") as! String)
        }
        
    }

    @IBAction func registerButton(_ sender: Any) {
        //UserDefaultsに値を登録
        UserDefaults.standard.set(textField.text, forKey: "text")
        //登録された値を表示する
        label.text = (UserDefaults.standard.object(forKey: "text") as! String)
    }
    
    //画面をタップした時
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        //キーボードを閉じる
        textField.resignFirstResponder()
    }
    
}