Sobes.tech
Junior — Middle

Чӣ тавр системаи амалиётӣ муайян мекунад, ки кай объект дар хотира дигар истифода намешавад ва онро бехатар озод кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Ҳамён тизими ўз-ўзидан тўғридан-тўғри хотирадаги объектларни озод қилишни бошқармайди — бу ижро муҳити ва дастурлаш тилининг вазифасидир. Масалан, iOSда хотирани бошқариш ARC (Автоматик Мурожаатлар Саноқи) механизми орқали амалга оширилади.

ARC объектга бўлган мурожаатлар сонини кузатади. Агар объектга бўлган мурожаатлар сони нолга етса (яъни, унга ҳеч ким мурожаат қилмаса), объект автоматик равишда хотирадан озод қилинади.

Масалан:

class MyClass {}
var obj: MyClass? = MyClass() // мурожаатлар сони = 1
obj = nil // мурожаатлар сони = 0, объект озод қилинади

Шу тариқа, ишлаш тизими қачон объектдан фойдаланиш тугашини аниқламайди — бу ижро муҳити мурожаатлар сонини ҳисоблаш ёки чиқиндилар йиғувчиси орқали амалга оширади.