Sobes.tech
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.