Junior — Middle
Proqramlaşdırma dilində güclü referansların istifadəsi yaddaşdakı obyektin mövcud olma müddətinə necə təsir edir?
sobes.tech Süni İntellekt
AI-dan cavab
iOS-da (və Swift/Objective-C-də) güclü (strong) istinadlar obyektlərə adi istinadlar olub, obyektin istinad sayğacını artırır. Obyektə ən azı bir güclü istinad olduğu müddətdə, o, yaddaşdan silinməz.
Bu, obyektin yaddaşda mövcud olmağa davam etdiyini, ona güclü istinadların olduğu müddətdə başa düşür. Bütün güclü istinadlar silindiyi və ya nil-ə çevrildiyi zaman, obyekt avtomatik olaraq sərbəst buraxılır (ARC — Avtomatik İstinad Sayğacı).
Nümunə:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // güclü istinad
var person2 = person1 // istinad sayğacını artırır
person1 = nil // obyekt hələ də mövcuddur, çünki person2 ona istinad edir
person2 = nil // indi obyekt sərbəst buraxılır
Beləliklə, güclü istinadlar obyektin yaddaşdakı həyat müddətinə birbaşa təsir edir — ən azı biri mövcud olduqda, obyekt canlıdır.