Je me demande sur l'allocation d'un objet qui a une propriété de retenir, quelque chose comme ça:Objectif C: conserver vs alloc - revisité
RootViewController *viewController;
@property (nonatomic, retain) RootViewController *viewController;
@implementation ...
viewController = [[RootViewController alloc] init];
car ce n'est pas le droit de faire quelque chose comme ça:
self.viewController = [[RootViewController alloc] init];
car cela augmentera le nombre de rétention d'objet de 2 et vous devrez libérer votre objet deux fois, dont l'un est dans la méthode dealloc.
Alors serait-il préférable d'utiliser une propriété assign si j'alloue mon objet? ou quand serait-il nécessaire de conserver un objet que j'alloue en utilisant la méthode alloc.
Je suis très confus à propos de ce problème, alors pouvez-vous s'il vous plaît m'expliquer comment cette situation est valable.
Merci beaucoup d'avance et je l'apprécierais vraiment.
Cordialement,
Bonne réponse. 'assign' serait complètement faux. Notamment, si la valeur était réinitialisée plus tard via, par exemple, 'self.viewController = someOther;', alors * que * ne serait pas un transfert de propriété si la propriété était 'assign'. – bbum
merci pour votre réponse. Mais pourquoi utiliser assign serait faux?et quand devrais-je utiliser Assigner? – mshaaban
@bbum, ça explique vraiment beaucoup. Merci beaucoup pour ton commentaire !! – mshaaban