Merhabalar bu yazımda Swift ile birlikte dilin yapısında bulunan ve önemli bir yere sahip olan protokollerin class eki ile kullanılması ne anlama gelir. Bunu göstereceğim.
Protokol yapısını çoğu yazımda bahsetmiştim. İOS ve macOS vs. kütüphaneleri protokol yapısı ile yazılmıştır ve mantık olarak çoğu nesne kullanım bu mantıkla çalışır. Bunların detayına tekrar girmeyeceğim.
Belirlediğiniz protokol isminin yanında yer alabilen class değimi protokole sadece sınıf türü ile birlikte kullanım özelliği sağlar. Ve diğer yapılarda (Struct,Enum) çağrılamazlar. Yazacağımız protokolleri sadece modellediğimiz sınıf ile birlikte kullanıcaksak bu değimi kullanmamız iyi olacaktır.
Aşağıda yazdığım örneği inceleyebilirsiniz. Gördüğünüz gibi struct ile kullanırsak hata vermekte.
protocol prot: class { var name:String {get} var age:Int {get} } class A:prot { var name: String var age:Int init(name:String,age:Int) { self.name = name self.age = age } } class B: A { override init(name:String,age:Int) { super.init(name: name, age: age) } convenience init () { self.init(name: "Kenan", age: 21) } } struct ST:prot { // error var name:String var age: Int } var bObj = B() bObj.name bObj.age
Bu yazı yorumlara kapalı.