Junior — Middle
Será removido automaticamente um objeto da memória se for apontado por três referências fracas (weak) e uma não obrigatória (unowned)?
sobes.tech IA
Resposta da IA
O objeto será automaticamente removido da memória se não restarem referências fortes (strong) a ele. Referências fracas (weak) e não obrigatórias (unowned) não aumentam o contador de referências do objeto. No seu caso, se houver apenas três referências weak e uma unowned, mas nenhuma strong, o objeto é considerado não utilizado e será desalocado.
Exemplo:
class MyClass {}
var strongRef: MyClass? = MyClass() // referência forte
weak var weakRef1 = strongRef
weak var weakRef2 = strongRef
weak var weakRef3 = strongRef
unowned var unownedRef = strongRef!
strongRef = nil // agora não há referências fortes, o objeto será desalocado