Sobes.tech
Junior

O que são os modificadores de memória strong?

sobes.tech IA

Resposta da IA

O modificador strong em Swift indica que uma referência a um objeto aumenta o contador de referências desse objeto em um. Isso significa que o objeto será mantido na memória enquanto existir pelo menos uma referência forte a ele.

É usado por padrão para tipos de referência (classes). Atribuir nil a uma variável com o modificador strong diminui o contador de referências. Quando o contador de referências chega a zero, o objeto é liberado da memória.

Exemplo:

class Person {
    var name: String
    init(name: String) {
        self.name = name
        print("\(name) está sendo inicializado")
    }
    deinit {
        print("\(name) está sendo desinicializado")
    }
}

var reference1: Person?
var reference2: Person?

reference1 = Person(name: "Alice") // Contador de referências para Alice: 1
reference2 = reference1           // Contador de referências para Alice: 2

reference1 = nil                   // Contador de referências para Alice: 1
reference2 = nil                   // Contador de referências para Alice: 0, Alice é desinicializada