Junior — Middle
Obyektlərə zəif istinadlar saxlayan məlumat strukturu necə yaradıla bilər?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da (Swift/Objective-C) obyektlərə zəif istinadlar saxlamaq üçün məlumat quruluşu yaratmaq üçün NSMapTable və ya NSHashTable sinfi zəif istinad seçimi ilə istifadə olunur.
Zəif istinadlar obyektlərin güclü istinadlar olmadığı halda yaddaşdan azad edilməsinə imkan verir, bu da yaddaş sızmalarını qarşısını alır.
Swift-də NSMapTable ilə nümunə:
let mapTable = NSMapTable<NSString, AnyObject>.weakToWeakObjects()
let key = "key" as NSString
var object: NSObject? = NSObject()
mapTable.setObject(object, forKey: key)
object = nil // indi obyekt yaddaşdan silinə bilər
if let value = mapTable.object(forKey: key) {
print("Obyekt mövcuddur")
} else {
print("Obyekt silinib")
}
Həmçinin, Weak wrapper istifadə etmək olar — daxildə zəif istinada olan qaplama, əgər öz məlumat quruluşunuza ehtiyacınız varsa.
Bu şəkildə, zəif istinadlar NSMapTable zəif-zaif və ya zəif-güclü konfiqurasiyalar ilə saxlanılır, vəzifəyə görə.