Junior — Middle
É possível declarar uma referência fraca como constante, e em que casos isso é aceitável?
sobes.tech IA
Resposta da IA
Em Swift, a referência fraca (weak) deve sempre ser declarada como uma variável (var), e não como uma constante (let). Isto ocorre porque a referência fraca torna-se automaticamente nil quando o objeto ao qual ela se refere é libertado da memória. Se a referência fraca fosse uma constante, não seria possível alterar o seu valor para nil, o que contradiz a lógica das referências fracas.
Assim, declarar uma referência fraca como uma constante é impossível e sem sentido. Um exemplo de declaração correta:
class MyClass {
weak var delegate: SomeDelegate?
}
Se precisar que a referência seja uma constante, pode usar uma referência forte (let), mas então ela não será fraca e pode levar a ciclos de retenção.