UserDefaultsの基礎的な使い方

Blog

 

今回は、UserDefaultsを使ってデータの保存と呼び出しの方法です。

UserDefaultsは簡易にデータの保存ができるものです。

 

今回は、TextFieldに入力した文字をLabelに表示するアプリを作成します。

 

 

完成イメージ

 

 

 

環境

  • Swift4
  • Xcode9
  • UserDefaults

 

UIの実装

 

  1. Labelを一つ追加。
  2. TextFieldを一つ追加。
  3. Buttonを二つ追加。「SAVE」「RESET」。

 

 

 

接続

 

  1. LabelをOutlet接続。Name:「label」。
  2. textfieldをOutlet接続。Name:「textField」。
  3. ButtonをAction接続。Name:「SaveBtn」「ResetBtn」。

 

 

 

コーディング

 

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    var testText:String = ""
    
    let userDefaults = UserDefaults.standard
    
    @IBOutlet weak var label: UILabel!
    
    
    @IBOutlet weak var textField: UITextField!
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        textField.delegate = self
        userDefaults.register(defaults: ["DataStore": "label"])
        label.text = readData()
        
    }

    
    @IBAction func saveBtn(_ sender: Any) {
        testText = textField.text!
        label.text = testText
        saveData(str: testText)
    }
    
    @IBAction func resetBtn(_ sender: Any) {
        userDefaults.removeObject(forKey: "DataStore")
        textField.text = ""
        label.text = ""
    }
    
    func saveData(str: String){
        userDefaults.set(str, forKey: "DataStore")
        userDefaults.synchronize()
    }
    
    func readData() -> String {
        let str: String = userDefaults.object(forKey: "DataStore") as! String
        return str
    }
    
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

 

 

ポイント

 

  • インスタンスの作成。
let userDefaults = UserDefaults.standard

 

  • 初期値の設定。
userDefaults.register(defaults: ["DataStore": "label"])

 

  • saveDataファンクションの作成。
  • 「set」で「DataStore」キーを指定して保存。
  • 「synchronize()」で同期。
   func saveData(str: String){
        userDefaults.set(str, forKey: "DataStore")
        userDefaults.synchronize()
    }

 

  • readDataファンクションの作成。
  • 「object」で「DataStore」キーを読み込む。
func readData() -> String {
        let str: String = userDefaults.object(forKey: "DataStore") as! String
        return str
    }

 

  • labelに表示する。
 label.text = readData()

 

実行結果

 

 

 

 

アプリをリセットしてもデータが残っています。

UserDefaultsを使うと簡単なデータを保存することができます。

 

以上で「UserDefaultsの基礎的な使い方」の説明を終わります。

 

 

🤗

 

 

 

コメント