La déclaration est:Ai-je une fuite avec cette déclaration?
//Pass the copy onto the child controller
self.childController.theFoodFacilityCopy = [self.theFoodFacility copy];
Ma propriété est définie sur:
@property (nonatomic, retain) FoodFacility *theFoodFacilityCopy;
La raison pour laquelle je pense avoir une fuite est parce que copy
conserve la valeur et ma propriété de syntaxe dot conserve également la valeur . Doublement conservé.
Quelle est la manière correcte d'écrire l'instruction ci-dessus?
Vous pourriez également juste libérer si vous vouliez garder un one-liner. – Chuck
En général, j'essaie d'éviter l'autorelease sauf si j'en ai vraiment besoin (comme retourner un objet d'une méthode). Les objets Autoreleased peuvent conduire à des problèmes difficiles à déboguer lorsque les choses tournent mal parce que la trace de la pile lorsqu'elle se bloque n'intersecte pas votre code du tout. J'ai été mordu par ça avant. –
Merci Squeegy J'ai implémenté cette façon de faire dans mon programme. Serait-ce aussi bien? self.childController.theFoodFacilityCopy = [self.theFoodFacility copy]; [auto.childController.theFoodFacilityCopy]; Est-ce que cela réduirait le nombre de retenues de 1? ou pas .. –