Sobes.tech
Junior — Middle

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.