Today I Learned

UserDefaults - TIL

jjjkh 2023. 8. 23. 20:45

UserDefaults란 앱에서 간단한 데이터를 저장하기 위한 인터페이스로 앱의 설정, 사용자 기본값, 앱 상태 등과 같은 작은 데이터를 저장하는데 사용되고 앱이 종료된 후에도 데이터를 유지할 수 있다. 

 

데이터 저장 형태

  1. 문자열 (String): 텍스트 데이터를 저장. ex) 사용자 이름, 이메일 주소 등을 저장. 
  2. 정수형 (Int): 정수 데이터를 저장. ex) 나이, 숫자 등을 저장. 
  3. 부동소수점형 (Float, Double): 실수 데이터를 저장. ex) 키, 몸무게 등을 저장.
  4. 부울형 (Bool): 참(True) 또는 거짓(False) 값을 저장. ex) 알림 활성화 여부, 소리 재생 여부 등을 저장.
  5. 날짜 (Date): 특정 날짜와 시간 정보를 저장. ex) 사용자의 생일, 이벤트 일정 등을 저장. 
  6. 배열 (Array): 여러 데이터를 모아서 저장할 수 있는 배열 형태로 저장. ex) 사용자가 선택한 항목들의 목록 등을 저장. 
  7. 사전 (Dictionary): 키-값 쌍으로 구성된 데이터를 저장. ex) 사용자의 프로필 정보를 저장할 때, 각 속성에 대한 키와 값을 저장. 
// 데이터 저장
UserDefaults.standard.set("John Doe", forKey: "username")
UserDefaults.standard.set(25, forKey: "age")

// 데이터 검색
if let username = UserDefaults.standard.string(forKey: "username") {
    print("사용자 이름: \(username)")
}
let age = UserDefaults.standard.integer(forKey: "age")
print("나이: \(age)")

// 데이터 업데이트
UserDefaults.standard.set(30, forKey: "age")

// 데이터 삭제
UserDefaults.standard.removeObject(forKey: "username")

// 기본값 설정
let defaultSettings = ["soundEnabled": true, "notificationsEnabled": true]
UserDefaults.standard.register(defaults: defaultSettings)

// 기본값으로부터 데이터 가져오기
let soundEnabled = UserDefaults.standard.bool(forKey: "soundEnabled")
let notificationsEnabled = UserDefaults.standard.bool(forKey: "notificationsEnabled")

위 예시코드와 같은 방식으로 데이터를 저장, 업데이트, 삭제, 불러오기가 가능한데 위 코드들을 버튼에 연결하여 확인도 가능하다.