Open hyun99999 opened 2 years ago
@propertyWrapper
struct UserDefault<T> {
let key: String
let defaultValue: T
// ✅ Userdefaults 로 값을 찾을 때 없다면, defaultValue 를 반환.
// 그렇기 때문에 wrappedValue 는 옵셔널이 아님.
var wrappedValue: T {
get {
return UserDefaults.standard.object(forKey: key) as? T ?? defaultValue
}
set {
UserDefaults.standard.set(newValue, forKey: key)
}
}
}
enum GlobalSettings {
@UserDefault(key: "FOO_FEATURE_ENABLED", defaultValue: false)
static var isFooFeatureEnabled: Bool
@UserDefault<Bool>(key: "BAR_FEATURE_ENABLED", defaultValue: false)
static var isBarFeatureEnabled
}
swift-evolution/0258-property-wrappers.md at main · apple/swift-evolution
의 코드를 참고하여 프로젝트에 적용
프로퍼티 래퍼 공부 후 다시금 리펙토링을 목표로 함
Originally posted by @hyun99999 in https://github.com/TeamSparker/Spark-iOS/issues/628#issuecomment-1133655022