web-dev-qa-db-fra.com

IBOutlet doit-il être un var faible ou fort?

J'utilise Xcode 6.2 pour des projets iOS. Dans les anciennes versions de Xcode, lorsqu'une connexion était créée pour un IBOutlet, c'était toujours un stockage faible. Maintenant, lorsque je crée des connexions, elles sont par défaut fortes. Je laisse les choses comme ça et je ne remarque aucune différence.

Quelle version de Xcode la valeur par défaut est-elle devenue forte et pourquoi?

25
4thSpace

Oui, auparavant les prises devraient généralement être faibles mais Apple a changé cela. Maintenant, ils recommandent d'utiliser des prises fortes dans le Session WWDC 2015 Implémentation de conceptions d'interface utilisateur dans Interface Builder . La seule raison pourquoi il pourrait être faible est le cycle de rétention.

28
beryllium

Peu importe que la sortie soit faible ou forte dans la plupart des cas. Assurez-vous simplement de ne pas avoir de cycles de référence solides.

Les sous-vues ne doivent pas avoir de sorties solides vers leurs superviews et la vue ne doit pas avoir de sorties fortes vers son contrôleur, car superview a déjà une référence forte à ses sous-vues et le contrôleur a une référence forte à sa vue.

13
Dmitry Korotchenkov