Junior — Middle
Como fazer uma referência fraca numa linguagem de programação?
sobes.tech IA
Resposta da IA
No iOS (Swift), para criar uma referência fraca, usa-se a palavra-chave weak. Uma referência fraca não aumenta o contador de referências do objeto, o que ajuda a evitar ciclos de retenção e fugas de memória.
Exemplo:
class Person {
var name: String
weak var apartment: Apartment? // referência fraca
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // referência forte
init(unit: String) {
self.unit = unit
}
}
// Uso:
let john = Person(name: "John")
let unit4A = Apartment(unit: "4A")
john.apartment = unit4A
unit4A.tenant = john
Neste exemplo, Person contém uma referência fraca a Apartment para evitar um ciclo de retenção entre Person e Apartment. Se ambas as referências fossem fortes, os objetos não seriam liberados da memória.
Importante: referências fracas devem ser opcionais (?), pois o objeto ao qual se referem pode ser removido.