Junior — Middle
Dasturlash tilida kuchli havolalarning ishlatilishi ob'ektning xotirada mavjud bo'lish muddatiga qanday ta'sir qiladi?
sobes.tech AI
AIdan javob
iOS (va Swift/Objective-C) da kuchli (strong) havolalar obyektlarga odatiy havolalar bo'lib, obyektning havola hisoblagichini oshiradi. Ob'ektga kamida bitta kuchli havola bo'lsa, u xotiradan o'chirilmaydi.
Bu, obyekt xotirada mavjud bo'lib, unga kuchli havolar bo'lsa davom etishini anglatadi. Barcha kuchli havolar o'chirilganda yoki nil ga o'zgartirilganda, obyekt avtomatik ravishda bo'shatiladi (ARC — Avtomatik havola hisoblash).
Misol:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // kuchli havola
var person2 = person1 // havola hisoblagichini oshiradi
person1 = nil // obyekt hali ham mavjud, chunki person2 unga havola qiladi
person2 = nil // endi obyekt bo'shatiladi
Shu tarzda, kuchli havolar obyektning xotiradagi yashash vaqtiga to'g'ridan-to'g'ri ta'sir qiladi — kamida bittasi mavjud bo'lsa, obyekt tirik hisoblanadi.