Swiftで行こう!-Property Wrappers!
Swift 5.1から使えるようになってます。Property Wrappersとは、
構造体などでプロパティを定義する際に良く使うパターンがあります。この定義のパターンを予め決めておき再利用できる。
便利ですな。SwiftUIでは@State、@ObjectBinding、@Publishedなどが事前に使えるようになっています。
説明している参考サイトです。
日本語では
使い方が解説してあります。
自分で定義するには
@propertyWrapper
を使います。参考サイトです。
appleの説明です。
1例が上がっています。
@propertyWrapper
struct UserDefault<T> {
let key: String
let defaultValue: T
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(key: "BAR_FEATURE_ENABLED", defaultValue: false)
static var isBarFeatureEnabled: Bool
}
ちょっと理解が難しいけどいずれわかるかな。
この記事が気に入ったらサポートをしてみませんか?