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"]
간단히 값이 지속되는 것을 확인할 수 있다.
'iOS' 카테고리의 다른 글
iOS 커스텀 아키텍처 고민하며 구상해보기 (Unidirectional Data Flow / Based ReactorKit) (0) | 2024.07.21 |
---|---|
[AutoLayout] Hugging Priority vs Compression Resistance Priority (2) | 2022.05.01 |
[iOS] Table Views - Filling a Table with Data (0) | 2022.05.01 |
[Timer] 타이머 숫자(초단위)를 { 분 : 초 }로 변경하기 (String format) (0) | 2021.09.11 |
[SwiftUI] NavigationLink를 이용해서 페이지 이동하기 (0) | 2021.08.28 |