Sobes.tech
Junior — Middle

Bir programlama dilinde güçlü referansların kullanımı, nesnenin bellek içindeki varoluş süresini nasıl etkiler?

sobes.tech yapay zeka

AI'dan gelen yanıt

iOS'te (ve Swift/Objective-C'de) güçlü (strong) referanslar, nesnelere normal referanslardır ve nesnenin referans sayacını artırırlar. Nesneye en az bir güçlü referans olduğu sürece, nesne bellekten silinmez.

Bu, nesnenin bellekte var olmaya devam ettiği anlamına gelir, çünkü ona güçlü referanslar vardır. Tüm güçlü referanslar kaldırıldığında veya nil yapıldığında, nesne otomatik olarak serbest bırakılır (ARC — Otomatik Referans Sayımı).

Örnek:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var person1: Person? = Person(name: "Alex") // güçlü referans
var person2 = person1 // referans sayacını artırır

person1 = nil // nesne hâlâ var, çünkü person2 ona referans ediyor
person2 = nil // şimdi nesne serbest bırakılır

Bu şekilde, güçlü referanslar nesnenin yaşam süresini doğrudan etkiler — en az bir tane kaldığı sürece, nesne hayattadır.