Peut-on déclarer une référence faible comme constante, et dans quels cas cela est-il acceptable?
sobes.tech IA
Réponse de l'IA
En Swift, une référence faible (weak) doit toujours être déclarée comme une variable (var), et non comme une constante (let). Cela est dû au fait que la référence faible devient automatiquement nil lorsque l'objet auquel elle fait référence est libéré de la mémoire. Si la référence faible était une constante, il ne serait pas possible de changer sa valeur en nil, ce qui contredirait la logique des références faibles.
Ainsi, il est impossible et sans intérêt de déclarer une référence faible comme une constante. Un exemple de déclaration correcte :
class MyClass {
weak var delegate: SomeDelegate?
}
Si vous souhaitez que la référence soit une constante, vous pouvez utiliser une référence forte (let), mais elle ne sera pas faible et pourrait entraîner des cycles de rétention.