Sobes.tech
Junior — Middle

Pode explicar o que são os tipos de dados que representam referências a objetos na memória?

sobes.tech IA

Resposta da IA

No iOS, as referências a objetos na memória são representadas por ponteiros, mas com características que dependem do tipo de dados e da gestão de memória.

Principais tipos de referências:

  • Referência forte (strong reference) — referência padrão que mantém o objeto na memória. Enquanto existir pelo menos uma referência forte, o objeto não será eliminado.

  • Referência fraca (weak reference) — não mantém o objeto na memória. Se o objeto for eliminado, a referência fraca torna-se automaticamente nil, evitando ponteiros pendentes.

  • Referência não possuída (unowned reference) — semelhante à fraca, mas assume que o objeto existe durante toda a vida útil da referência. Se o objeto for eliminado, o acesso à referência não possuída causará uma falha.

Exemplo em Swift:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var strongRef: Person? = Person(name: "Alice") // referência forte
weak var weakRef = strongRef                 // referência fraca
unowned var unownedRef = strongRef!          // referência não possuída

strongRef = nil // o objeto será eliminado, weakRef se tornará nil, unownedRef será inválido

Dessa forma, os tipos de referências ajudam a gerenciar o ciclo de vida dos objetos e prevenir vazamentos de memória e ciclos de retenção.