-
UserDefaultsiOS/Wiki 2022. 1. 11. 22:54
안녕하세요!! 이번엔 UserDefaults에 대해서 정리했습니다.
이번 글도 노션에서 옮겨와 말이 짧습니다!! 양해해주세용😽
UserDefaults란?
Apple에서 제공해주는 Key:Value 형태의 기본 저장소
단일 데이터 값을 저장하기에 용이하다.
자동 로그인 여부, 알림 수신 여부, 인앱 결제 여부, 이메일, 닉네임, 성별 등 간단한 사용자 기본 설정에 사용된다.
저장 시 plist(Property list) 형식으로 저장된다.
프로그램의 실행이 종료되더라도, 사라지지 않는다. 하지만, 앱이 삭제된다면 데이터는 함께 사라진다.
앱의 삭제 유무와 상관없이 데이터를 유지하고 싶다면, 백업/복구 기능을 지원하거나 KeyChain, iCloud 동기화 등의 기능을 통해 유지하기도 한다.
UserDefaults에 값 저장하기
let userDefaults = UserDefaults.standard // UserDefaluts.standard 계속 쓰기 귀찮으면 변수나 상수에 저장 가능! userDefaults.set("하하", forKey: "테스트1") userDefaults.set(10, forKey: "테스트2") userDefaults.set(1.0, forKey: "테스트3") userDefaults.set(false, forKey: "테스트4")
UserDefaults에는 많은 set 메소드들이 있다.
메소드의 이름은 같으나 매개변수, 리턴타입 등을 다르게 하여 함수를 중복으로 선언할 수 있다.(함수 오버로딩)
Swift에서는 오버로딩을 허용하며, 함수 & 서브스크립트 & 생성자에서 사용할 수 있다.
위 코드는 오버로딩을 활용해서 각각 String, Int, Double, bool 타입으로 UserDefaults 값을 저장하는 코드이다.
UserDefaults에는 String, Float, Double, Integer 및 Boolean과 같은 기본 자료형 뿐만 아니라,
NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary 유형의 객체를 저장할 수도 있다.
UserDefaults에 저장된 값 가져오기
if let test1 = userDefaults.string(forKey: "테스트1") { print(test1) } let test2 = userDefaults.integer(forKey: "테스트2") print("\\(test2)") let test3 = userDefaults.double(forKey: "테스트3") print("\\(test3)") let test4 = userDefaults.bool(forKey: "테스트4") print("\\(test4)")
저장할 때 사용한 자료형으로 불러 올 수 있다.
단, String타입은 옵셔널로 반환하므로, 옵셔널 바인딩을 해주어야한다.
'iOS > Wiki' 카테고리의 다른 글
POP(Protocol-Oriented Programming) in Swift (1/2) (0) 2022.03.28 ReactorKit 사용기 (0) 2022.03.05 Swift ARC(Automatic Reference Counting) (0) 2022.01.15 Localization (0) 2022.01.14 페이지네이션(Pagination) (0) 2022.01.13