Faut-il toujours utiliser [unowned self] dans les closures en Swift ?
Bonjour à tous ! Je suis un développeur iOS débutant, et je n'arrive pas à comprendre les cycles de références fortes (retain cycles) dans les closures.
Voici un exemple simple : je fais une requête réseau à l'intérieur du contrôleur.
```swift
class ProfileViewController: UIViewController {
var nameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
fetchUserProfile()
}
func fetchUserProfile() {
APIClient.shared.getUserProfile { [weak self] profile in
self?.nameLabel.text = profile.name
}
}
}
```
Je vois que beaucoup utilisent `[weak self]`, mais certains écrivent `[unowned self]`. Quelle est la différence ? Quand faut-il utiliser `unowned` ? Ou vaut-il mieux toujours utiliser `weak` ?
J'ai entendu dire que `unowned` peut provoquer un crash si l'objet est