İçeriğe geç

Swift 5.5 ile @propertyWrapper kullanımı

Merhabalar bu yazımda Swift 5.5 ile fonksiyon parametresi içerisindede kullanılabilir hale gelecek olan @propertyWrapper örneği paylaşacağım.

Swift 5.1 ile aramıza katılan @propertyWrapper ile tanımladığımız değişkenlere ek özellikler kazandırabiliyoruz.

@propertyWrapper
struct ClearStr {
    private(set) var value: String = ""
    
    var wrappedValue: String {
        get { value }
        set { value = newValue.replacingOccurrences(of: ".", with: "") }
    }
    
    init(wrappedValue: String) {
        self.wrappedValue = wrappedValue
    }
}
struct CustomView:View {
    
    @ClearStr var name = "..Ken.an.."
    
    var body: some View {
        Text(name)
            .padding()
            .background(Color.orange)
            .cornerRadius(5)
    }
}

Şimdi ise fonksiyon içerisindeki değişken tanımlarken kullanabileceğiz.

@propertyWrapper
struct Clamped<T: Comparable> {
    let wrappedValue: T

    init(wrappedValue: T, range: ClosedRange<T>) {
        self.wrappedValue = min(max(wrappedValue, range.lowerBound), range.upperBound)
    }
}
func setScore(@Clamped(range: 0...100) to score: Int) {
        print("Score: \(score)")
    }

 

 

Tarih:Swift 5

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2021 Kenan Atmaca