見出し画像

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
}

ちょっと理解が難しいけどいずれわかるかな。

この記事が気に入ったらサポートをしてみませんか?