Sobes.tech
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.