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