Sobes.tech
Junior — Middle

Xotira ichidagi ob'ektlarga murojaat qiladigan ma'lumot turlarini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

iOS'da, xotirələrdəki 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 // obyekt 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.