概要
表題の通りであります。
引用
NSHiper
Sample code
入力文字列値から空白と改行を削除する次のprefixed attributesのサンプルが下記になります。
@propertyWrapper
を利用して、定義します。
import Foundation
@propertyWrapper
struct Trimmed {
private(set) var value: String = ""
var wrappedValue: String {
get { value }
set { value = newValue.trimmingCharacters(in: .whitespacesAndNewlines) }
}
init(wrappedValue initialValue: String) {
self.wrappedValue = initialValue
}
}
使ってみる。
struct Post {
@Trimmed var title: String
@Trimmed var body: String
}
var quine = Post(title: " Swift Property Wrappers ", body: "…")
print(quine.title)// Swift Property Wrappers
こんな感じでいけます。
airbnbがよしなにやっていたので、勉強してみました。
airbnb github
https://github.com/airbnb/ResilientDecoding
コードと解説はNSHiperをそのまま引用しました、詳しい情報はNSHiperやApple (github)を参考にして下さい。