기어가더라도 제대로
User Default 저장 및 인출 본문
문제 상황
사용자가 앱을 사용하면서 좋아하는 설정을 해놓으면, 이에 관한 정보를 어디에 담을 것인가?
예를들면 다크모드를 사용하고 있다던지, 글자 크기는 보통보다 크다든지, 음악의 재생속도를 설정하는 등의 상황들 말이다.
이러한 설정들을 어플리케이션에 저장할 수 있는 방법이 있는데 UserDefaults
라고 한다. 간단한 사용법을 한 번 알아 보자.
공식문서에서는 뭐라고 하는가?
앱의 launch 에서부터 key-value 쌍의 데이터를 영구적으로 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스
- 런타임에 사용할 때마다 찾아오지 않고 캐시를 한다고 한다.
- 파일 기반으로 저장하기 때문에 저장된 파일을 옮기면 찾지 못한다고 한다.
bookmarkData()
를 사용하라고 한다.
사용법
UserDefaults
는 크게 저장과 불러오기 두가지를 자주 사용한다.
시스템에 저장하기
- 사용자가 설정한 환경 설정들을 시스템에 저장한다.
set
이라는 키워드를 사용한다.forKey
매개 변수에 이 데이터의 키워드를 설정한다.- 저장된 데이터를 불러올 때 키를 다시 사용한다.
let data = Data()
UserDefaults.standard.set(data, forKey: "someData")
시스템에서 불러오기
- 시스템에 저장되어있는 설정을 불러온다.
- 불러오려는 정보에 따라다르지만, 이번엔 data로 불러오자.
- 아까 저장해준
forKey
를 사용한다.
guard let data = UserDefaults.standard.Data(forKey: "someData") else { return }
더 알아보기
- 앱이
background
상태로 넘어가거나foreground
상태로 되돌아 올 때 값을 저장하고 인출하기 - Data 를 생성하는 KeyedArchiver 알아보기
출처
https://developer.apple.com/documentation/foundation/userdefaults
https://zeddios.tistory.com/107
'UIKit 기초' 카테고리의 다른 글
[UIKit-기초] ScrollView, blur, trnaslationX, fade-in, fade-out (0) | 2022.12.13 |
---|---|
NSKeyedArchiver, NSKeyedUnarchiver (0) | 2022.08.23 |
AppDelegate, SceneDelegate, VC 에 접근하기 (0) | 2022.08.23 |
Layer, .anchorPoint, .Position, 그리고 view.center(feat, frame, bound) (0) | 2022.07.30 |
UIPanGestureDelegate (0) | 2022.07.30 |
Comments