Quelle est la différence entre cela:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
et ça:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Je souhaite utiliser la propriété pour les délégués.
La seule différence entre weak
et assign
est que si l'objet sur lequel une propriété weak
pointe est désalloué, la valeur du pointeur weak
sera définie à nil
, afin de ne jamais courir le risque d'accéder aux ordures. Si vous utilisez assign
, cela ne se produira pas, donc si l'objet est désalloué sous vous et que vous essayez d'y accéder, vous accéderez aux ordures.
Pour les objets Objective-C, si vous êtes dans un environnement où vous pouvez utiliser weak
, vous devez l'utiliser.