UserDefaults
- iOS 및 macOS 애플리케이션에서 설정과 같은 간단한 데이터를 영구적으로 저장하고 관리하기 위한 인터페이스를 제공하는 클래스
- 싱글톤 패턴으로 설계되어 앱 전체에서 단 하나의 인스턴스만 존재
- 사용자 환경 설정, 마지막 사용 데이터, 기본 설정 값 등을 쉽게 저장하고 검색할 수 있음
- 키-값 형태로 작동하며, 사용자가 설정을 변경하거나 앱 내에서 사용하는 데이터를 저장하는 데 주로 사용
- 앱이 종료되거나 다시 시작되더라도 설정과 데이터가 유지되는 이점 제공
- 작은 데이터에 적합하며 대량의 데이터를 저장하는 데는 적합하지 않음
예제)
import UIKit
// 데이터 저장 (데이터 - 키)
UserDefaults.standard.set("홍길동", forKey: "userName")
UserDefaults.standard.set(25, forKey: "userAge")
UserDefaults.standard.set(true, forKey: "isStudent")
// 데이터 검색
let userName = UserDefaults.standard.string(forKey: "userName")
let userAge = UserDefaults.standard.integer(forKey: "userAge")
let isStudent = UserDefaults.standard.bool(forKey: "isStudent")
print("userName : \(userName), userAge : \(userAge), isStudent : \(isStudent)")
// 출력 : userName : Optional("홍길동"), userAge : 25, isStudent : true
// 딕셔너리 형태로 UserDefaults에 저장
let defaultValues : [String : Any] = [
"userName" : "Guest",
"age" : 20,
"isTrue" : false
]
// 데이터 저장
UserDefaults.standard.set(defaultValues, forKey: "defaultValue")
// 데이터 검색
let value = UserDefaults.standard.dictionary(forKey: "defaultValue")
// 옵셔널 바인딩
if let name = value?["userName"] as? String {
print("\(name)") // 출력 : Guest
}
if let age = value?["age"] as? Int {
print("\(age)") // 출력 : 20
}
if let isTrue = value?["isTrue"] as? Bool {
print("\(isTrue)") // 출력 : false
}
참고)
https://velog.io/@nnnyeong/iOS-UserDefaults-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0
https://zeddios.tistory.com/107
'Swift' 카테고리의 다른 글
Swift - mutating (0) | 2023.08.22 |
---|---|
Swift - DispatchQueue (0) | 2023.08.22 |
Swift - 키보드 올라옴 감지(NotificationCenter, Observer 사용) (0) | 2023.08.11 |
Swift - 프로토콜 (Protocol) (0) | 2023.08.06 |
Swift 사진 설정하기 (UIImagePickerController 사용) (0) | 2023.08.05 |