Sobes.tech
Junior — Middle

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

sobes.tech AI

Ҷавоб аз AI

Бале, дар iOS (ва Swift) механизмҳои ишораҳои суст (weak references) мавҷуданд, ки имкон медиҳанд объектҳоро бидуни нигоҳ доштани онҳо дар ёддошт пайгирӣ кардан ва пешгирӣ кардани ҳазфи онҳо аз ҷониби ҷамъкунандаи партовҳо (ARC).

Ишораи суст шумораи ишораҳои ба объект афзун намекунад, бинобарин вақте ки ишораҳои қавӣ боқӣ намонанд, объект аз ёддошт озод мешавад.

Масалан, истифодаи ишораи суст дар Swift:

class Person {
    let name: String
    init(name: String) {
        self.name = name
    }
}

class Apartment {
    weak var tenant: Person?  // ишораи суст
}

var person: Person? = Person(name: "Ivan")
var apartment: Apartment? = Apartment()
apartment?.tenant = person

person = nil  // объект Person тоза мешавад, зеро ишораҳои қавӣ боқӣ намондааст

print(apartment?.tenant)  // nil

Ин тариқ, ишораҳои суст имкон медиҳанд, ки объектҳоро пайгирӣ кардан, бидуни монеъ шудан ба ҳазрашон.