[swift] SwiftyUserDefaults를 사용하여 사용자의 앱 내 등급 정보를 저장하는 방법은 어떻게 되나요?

앱 내에서 사용자의 등급 정보를 저장하려면 “SwiftyUserDefaults” 라이브러리를 사용할 수 있습니다. SwiftyUserDefaults는 UserDefaults를 사용하는 데 도움이 되는 라이브러리로, 손쉬운 문법과 유형 안전성을 제공합니다.

먼저, 프로젝트에 SwiftyUserDefaults를 추가해야 합니다. CocoaPods를 사용하는 경우 Podfile에 다음을 추가하고 pod install을 실행합니다.

pod 'SwiftyUserDefaults'

그런 다음, 다음과 같이 사용자의 등급 정보를 저장할 등급 클래스를 만듭니다.

import SwiftyUserDefaults

enum UserGrade: String, Codable {
    case bronze
    case silver
    case gold
}

extension DefaultsKeys {
    var userGrade: DefaultsKey<UserGrade?> { .init("userGrade") }
}

// 등급을 저장하고 가져오는 함수
func saveUserGrade(_ grade: UserGrade?) {
    Defaults[\.userGrade] = grade
}

func getUserGrade() -> UserGrade? {
    return Defaults[\.userGrade]
}

위의 코드에서 UserGrade는 열거형 타입으로 등급 정보를 나타냅니다. SwiftyUserDefaults의 DefaultsKeys를 사용하여 userGrade 프로퍼티를 설정합니다. saveUserGrade 함수는 사용자의 등급 정보를 저장하고, getUserGrade 함수는 저장된 등급 정보를 가져옵니다.

위의 코드에서는 옵셔널로 등급 정보를 저장하고 가져오도록 처리했습니다. 이는 사용자 등급이 설정되지 않은 경우를 고려하는 것입니다. 필요에 따라 옵셔널을 사용하지 않을 수도 있습니다.

이제 saveUserGrade 함수를 사용하여 사용자의 등급 정보를 저장하고, getUserGrade 함수를 사용하여 저장된 등급 정보를 가져올 수 있습니다.

// 등급 저장
saveUserGrade(.gold)

// 등급 가져오기
if let userGrade = getUserGrade() {
    print("사용자 등급: \(userGrade.rawValue)")
} else {
    print("등급 정보 없음")
}

위의 코드에서는 saveUserGrade 함수를 사용하여 사용자의 등급을 gold로 설정하고, getUserGrade 함수를 사용하여 등급 정보를 가져옵니다. 등급 정보가 설정된 경우 해당 등급이 출력되고, 설정되지 않은 경우 “등급 정보 없음”이 출력됩니다.

SwiftyUserDefaults를 사용하면 간단하고 안전하게 사용자의 등급 정보를 저장하고 가져올 수 있습니다.