기어가더라도 제대로

User Default 저장 및 인출 본문

UIKit 기초

User Default 저장 및 인출

Damagucci-juice 2022. 8. 23. 10:42

문제 상황

사용자가 앱을 사용하면서 좋아하는 설정을 해놓으면, 이에 관한 정보를 어디에 담을 것인가?

예를들면 다크모드를 사용하고 있다던지, 글자 크기는 보통보다 크다든지, 음악의 재생속도를 설정하는 등의 상황들 말이다.

이러한 설정들을 어플리케이션에 저장할 수 있는 방법이 있는데 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

 

Comments