Junior — Middle
Эстутумду башкаруу контекстинде 'Unowned' термини эмне мааниге ээ экенин түшүндүрө аласызбы?
sobes.tech AI
AIден жооп
iOS (жана Swift) эс тутумду башкаруу контекстинде, "Unowned" термини — бул объектке карата алсыз шилтеме, ал шилтеменин санын (retain count) көбөйтпөйт, бирок ошол шилтемени колдонуу учурунда объекттин бар экенине ишенет.
weak менен айырмачылыктары:
weakшилтеме объект өчүрүлгөндөnilболуп кете алат жана ошондуктан ал тандоо катары белгиленет.unownedшилтеме тандоо эмес жана автоматтык түрдөnilкылынбайт. Эгерunownedшилтемеси менен шилтемеленген объект өчүрүлсө, ага кирүү ишке ашырылганда ката (crash) пайда болот.
Бул ыкма, объекттин өмүрү шилтеменин өмүрүнөн узун же тең экенине кепилдик берилген учурда колдонулат.
Мисал:
class Owner {
var pet: Pet?
}
class Pet {
unowned let owner: Owner
init(owner: Owner) {
self.owner = owner
}
}
let owner = Owner()
owner.pet = Pet(owner: owner)
Бул мисалда, Pet Ownerга unowned шилтеме сактайт жана Owner Petтен узак жашайт деп эсептелет.