Эс тутумдарында объекттерге шилтеме кылган маалымат түрлөрү кандай экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
iOS'ta, yaddaştağı obyektlerge istinadlar göstəricilər vasitəsilə təqdim olunur, amma 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 istinad və obyektin yaddaşda saxlanmasını təmin edir. Ə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.