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
Ин тариқ, ишораҳои суст имкон медиҳанд, ки объектҳоро пайгирӣ кардан, бидуни монеъ шудан ба ҳазрашон.