İçeriğe geç

Swift ile Weak Veriables

swift

Merhabalar bu yazımda Swift ile ön ek olarak kullanılan Weak Değişkeninden bahsedip, örnek vereceğim.

Weak Değişkeni Lazy Veriables yazısındada açıkladığım gibi ARC sisteminde farklar yarattırıyor.

Direk aşağdaki örnek üzerinden açıklayayım.

class Person {
    
    var name:String
    
    
    init(name:String) {
        
        print("init")
        self.name = name
        
    }
    
    deinit {
        print("deinit")
    }
    
}

var obj:Person? = Person(name: "Kenan") // 1
var obj2:Person? = obj // 2

// var deneme = obj2 // 3
weak var wkveriable = obj2

obj = nil
obj2 = nil
// deinit

Yukardaki kod’da Person sınıfımız var. Bu sınıfı aşağıda 2 adet değişkene aktarmış olduk böylelikle referans sayımızı 2’e çıkarmış olduk. deneme adlı değişenide kullanırsak sayımız 3 olmuş olur.

Sınıfta bulunan deinit‘in devreye girmesi için tüm değişkenlerin hafızadan boşaltılması gerekli. Bu yüzden değişkenlerin değerini nil yaptık.

Weak ön ekli değişken kullandığımızda normalde referans değeri 3 olması gerekirken 2’de kalmış oldu. Yani dahil edilen değişkenin referansı 0 landığı zaman weak ön ekli değişkeninkide otomatik olarak 0 lanmış olur.

Normal olarak tanımlanan var değişkenler Strong yapıda olduğu için weak buna boyun eğemez ve diğer değişkenlerin referans hareketine göre çalışır. Böylelikle Sınıfın deinit fonksiyonu çalışmış olur.

Kategori:Swift

Bu yazı yorumlara kapalı.

Copyright © 2022 Kenan Atmaca