SwiftyUserDefaults는 Swift 언어로 작성된 라이브러리로, UserDefaults를 더욱 간편하게 사용할 수 있게 해줍니다. 이 라이브러리를 사용하면 UserDefaults를 좀 더 직관적이고 타입 안전한 방식으로 사용할 수 있으며, 다양한 타입에 대한 지원도 제공합니다.
기능 목록
- 타입 안전한 UserDefaults 속성 사용
- 기본 타입, 커스텀 타입 등 다양한 타입 지원
- 키 존재 여부 확인
- 기본값 설정 및 제거
- 여러 설정값 동시에 저장 및 로드
- 배열, 딕셔너리 등 컬렉션 타입 저장 및 로드
- 저장된 값의 삭제 및 초기화
타입 안전한 UserDefaults 속성 사용
SwiftyUserDefaults를 사용하면 UserDefaults에 저장된 값을 타입에 맞게 직접 접근할 수 있습니다. 예를 들어, UserDefaults에 “username”이라는 키로 저장된 값을 String 타입으로 가져오고 싶다면 아래와 같이 코드를 작성할 수 있습니다.
let username: String? = Defaults[.username]
다양한 타입 지원
SwiftyUserDefaults는 Bool, Int, Double, String과 같은 기본 타입뿐만 아니라, 커스텀 타입에 대해서도 지원합니다. 커스텀 타입을 UserDefaults에 저장하고 싶다면 해당 타입이 Codable
프로토콜을 준수하도록 구현해주어야 합니다.
struct User: Codable {
let name: String
let age: Int
}
let user = User(name: "John", age: 30)
Defaults[.currentUser] = user
키 존재 여부 확인
UserDefaults에 특정 키가 이미 저장되어 있는지 여부를 확인할 수 있습니다. 다음 코드는 “isLoggedIn”이라는 키가 UserDefaults에 저장되어 있는지를 확인하는 예시입니다.
if Defaults.hasKey(.isLoggedIn) {
// isLoggedIn 키가 이미 저장되어 있음
} else {
// isLoggedIn 키가 아직 저장되지 않음
}
기본값 설정 및 제거
UserDefaults에 특정 키에 대한 기본값을 설정하거나, 기본값을 제거할 수 있습니다. 아래는 “themeColor” 키의 기본값을 UIColor.white
로 설정하고, 이를 제거하는 코드입니다.
Defaults[.themeColor].setDefaultValue(.white)
Defaults[.themeColor].removeDefaultValue()
여러 설정값 동시에 저장 및 로드
SwiftyUserDefaults를 사용하면 여러 설정값을 동시에 저장하고 로드하는 것이 가능합니다. 아래는 여러 설정값을 한 번에 저장하고 로드하는 예시입니다.
Defaults.batchUpdate {
$0[.isLoggedIn] = true
$0[.username] = "John"
$0[.age] = 30
}
배열, 딕셔너리 등 컬렉션 타입 저장 및 로드
SwiftyUserDefaults는 배열, 딕셔너리 등의 컬렉션 타입에 대한 저장 및 로드도 지원합니다. 예를 들어, 배열을 UserDefaults에 저장하고 싶다면 아래와 같이 코드를 작성할 수 있습니다.
let fruits = ["apple", "banana", "orange"]
Defaults[.favoriteFruits] = fruits
저장된 값의 삭제 및 초기화
UserDefaults에 저장된 값들을 삭제하거나 초기화하는 것 역시 SwiftyUserDefaults로 가능합니다. 아래는 “isLoggedIn”과 “username” 키에 저장된 값을 삭제하고 초기화하는 코드입니다.
Defaults[.isLoggedIn] = nil
Defaults[.username].reset()