iOS

[UIKit] UserDefault로 데이터 저장하기

ji_iin 2021. 12. 27. 23:22

UserDefault를 사용하면 데이터 값이 plist에 값이 저장되어 영구적으로 사용 가능하다.

애플에서 공식문서를 보면 Key - Value로 구성되어 있는 Dictional 형태의 저장소임을 알 수 있다.

간단하게 값을 저장하고 불러오는 것이 가능하지만 plist에 저장되기 때문에 보안상 취약하다는 단점도 있다.

공식 문서 :  https://developer.apple.com/documentation/foundation/userdefaults

import UIKit

let defaults = UserDefault.standard //선언

defaults.set(0.24, forKey: "Volume") //float
defaults.set(true, forKey: "On") //bool
defaults.set("Julia", forKey: "Name") //String
defaults.set(Date(), forKey: "date") //date 객체

 

이렇게 선언하여 value 값과 key 값을 쌍으로 넣어주면

key 값을 통해 값을 얻어내어 사용할 수 있다.

let num = defaults.float(forKey: "Volume")  //0.24
let DateTime = defaults.object(forKey: "date") //"Dec 27, 2021"

 

 

 

뿐만 아니라 Array, Dictionary 값도 넣어 사용할 수 있다.

배열 값을 꺼내 사용할 때는 배열의 타입을 지정해서 int형의 배열로 다운캐스팅하면 좀 더 정확하게 값을 꺼낼 수 있다.

let array = [1,2,3]
defaults.set(array, forKey: "myArray")

let dictionary = ["name": "Julia"]
defaults.set(dictionary, forKey: "myDictionary")


let num = defaults.array(forKey: "myArray") as! [Int]  // [1,2,3]
let myDictionary = defaults.dictionary(forKey: "myDictionary") // ["name": "Julia"]

 

간단히 값이 지속되는 것을 확인할 수 있다.