Junior — Middle
Nesnelere zayıf referanslar saklayan bir veri yapısı nasıl oluşturulur?
sobes.tech yapay zeka
AI'dan gelen yanıt
iOS'ta (Swift/Objective-C) nesnelere zayıf referanslar tutan bir veri yapısı oluşturmak için NSMapTable veya NSHashTable sınıfı zayıf referans seçeneğiyle kullanılır.
Zayıf referanslar, nesnelerin güçlü referanslar olmadığında bellekten serbest bırakılmasını sağlar, böylece bellek sızıntıları önlenir.
Swift'te NSMapTable ile örnek:
let mapTable = NSMapTable<NSString, AnyObject>.weakToWeakObjects()
let key = "key" as NSString
var object: NSObject? = NSObject()
mapTable.setObject(object, forKey: key)
object = nil // artık nesne bellekten silinebilir
if let value = mapTable.object(forKey: key) {
print("Nesne mevcut")
} else {
print("Nesne silindi")
}
Ayrıca, kendi veri yapınızı ihtiyaç duyuyorsanız, Weak wrapper kullanabilirsiniz — içte zayıf referans içeren bir sarmalayıcı.
Bu şekilde, zayıf referanslar NSMapTable kullanılarak weak-to-weak veya weak-to-strong konfigürasyonlarıyla saklanır, göreve bağlı olarak.