Junior — Middle
Como é que o uso de ligações fortes numa linguagem de programação influencia a duração de existência de um objeto na memória?
sobes.tech IA
Resposta da IA
Em iOS (e em Swift/Objective-C), as referências fortes (strong) são referências normais a objetos que aumentam o contador de referências do objeto. Enquanto existir pelo menos uma referência forte ao objeto, ele não será removido da memória.
Isto significa que o objeto continua a existir na memória enquanto houver referências strong a ele. Quando todas as referências strong são removidas ou se tornam nil, o objeto é liberado automaticamente (ARC — Contagem Automática de Referências).
Exemplo:
class Person {
var name: String
init(name: String) { self.name = name }
}
var person1: Person? = Person(name: "Alex") // referência forte
var person2 = person1 // aumenta o contador de referências
person1 = nil // o objeto ainda existe, pois person2 referencia-o
person2 = nil // agora o objeto é liberado
Desta forma, as referências strong afetam diretamente o tempo de vida do objeto na memória — enquanto houver pelo menos uma, o objeto está vivo.