Sobes.tech
Middle

Swift proqramlaşdırma dilində güclü əlaqələr nə üçün lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də güclü istinadlar (strong references) obyektin ən azı bir güclü istinad olduğu müddətdə yaddaşda qalmasını təmin edir. Onlar referans növləri (siniflər) üçün standart davranışdır.

Bir dəyişən və ya sabit bir sinif nümunəsinə istinad etdikdə, bu istinad standart olaraq güclüdür. Bu, həmin nümunə üçün istinad sayğacını (reference count) artırır. Bütün güclü istinadlar mövcud olduqda (məsələn, dəyişənlər sahədən çıxarsa və ya nil-ə təyin olunsa), istinad sayğacı sıfıra çatır və yaddaş idarəetmə sistemi (ARC - Avtomatik Referans Sayımı) bu nümunənin istifadə etdiyi yaddaşı azad edir.

Güclü istinadların əsas vəzifəsi, obyektin hələ istifadə olunarkən erkən deallocasiyasını qarşısını almaqdır. Güclü istinadlar olmadan, obyektlər istənilən vaxt silinə bilər, bu isə sərbəst buraxılmış yaddaşa girişdə səhvlərə (sarkma göstərici səhvləri) səbəb ola bilər.

Lakin, güclü istinadlar, iki və ya daha çox obyektin bir-birinə güclü istinadlar tutması nəticəsində, retain cycle (saxlama döngüsü) adlanan problemə səbəb ola bilər və heç vaxt azad edilə bilməz, hətta onlara digər xarici istinadlar olmasa belə. Belə döngələri qarşısını almaq üçün, zəif (weak) və sahibsiz (unowned) istinadlar istifadə olunur.