Property wrappers - 2
Aşağıdaki yazıda property wrappers konusuna değinip bir örnek ile konu anlatılmıştı.
Yine güzel bir örnek konuyu zengileştirmek istedim.
String'in upper case olması Property wrappers ile sağlanabilir ve bu örnek bir çok yerde kullanılabilir. Örnek olması açısından havayolları şirketlerinin kullanmış olduğu uçuş numarası verilebilir. servisten küçük harf ile dönüyor olabilir anca UI'da bunu büyük harf ile gösterilmesi gerekebilir. Aşağıda kullanımına bir örnek gösterilmiştir.
@propertyWrapper
class UpperCase {
private(set) var value: String = ""
var wrappedValue: String {
get { value }
set {
value = newValue.uppercased()
}
}
}
struct Flight {
@UpperCase
var number: String
@UpperCase
var destination: String
init(number: String) {
self.number = number
}
}
var flight = Flight(number: "tk1497")
flight.destination = "ist"
print("\(flight.number) to \(flight.destination)")
//TK1497 to IST