Yaddaşdakı obyektlərə istinad edən məlumat tiplərini izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da yaddaşdakı obyektlərə istinadlar göstəricilər vasitəsilə təqdim olunur, lakin məlumat növündən və yaddaş idarəetməsindən asılı xüsusiyyətlərə malikdir.
Əsas istinad növləri:
-
Güclü istinad (strong reference) — standart istinaddır və obyekti yaddaşda saxlayır. Əgər ən azı bir güclü istinad mövcuddursa, obyekt silinməz.
-
Zəif istinad (weak reference) — obyekti yaddaşda saxlamır. Əgər obyekt silinsə, zəif istinad avtomatik olaraq nil olur və "sərbəst" göstəricilərin qarşısını alır.
-
Məhv olunmayan istinad (unowned reference) — zəifə bənzəyir, lakin obyektin bütün həyat dövrü ərzində mövcud olduğunu qəbul edir. Əgər obyekt silinsə, unowned istinadına müraciət etmək çöküşə səbəb olar.
Swift-də nümunə:
class Person {
var name: String
init(name: String) { self.name = name }
}
var strongRef: Person? = Person(name: "Alice") // güclü istinad
weak var weakRef = strongRef // zəif istinad
unowned var unownedRef = strongRef! // məhv olunmayan istinad
strongRef = nil // obyekti silinəcək, weakRef nil olacaq, unownedRef isə etibarsız olacaq
Bu şəkildə, istinad növləri obyektlərin həyat dövrünü idarə etməyə və yaddaş sızmalarını və döngələri qarşısını almağa kömək edir.