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.