J'ai une propriété dans mon fichier d'en-tête commeNSMutableDictionary - « décrément incorrect du compte de référence d'un objet ... »
@property (nonatomic,retain) NSMutableDictionary* e;
et dans mon viewDidLoad: méthode alloué comme
self.e = [[NSMutableDictionary alloc] initWithContentsOfURL:myURL];
. L'analyseur statique XCode est déclenché et indique 'Potential leak of an object...'
évidemment. Mais quand je libère l'objet ([self.e release]
dans dealloc) l'erreur persiste, mais maintenant il dit aussi qu'il y a un "décrément incorrect du compte de référence", et que cet objet n'appartient pas à l'appelant (mon viewController). L'erreur 'erreur de décrémentation ...' disparaît lorsque je remplace [self.e release]
par [e release]
. Mais l'ancienne erreur concernant la fuite potentielle est toujours là. Quel est le problème?
De même, "[self.e release] in dealloc" est incorrect. Vous devriez libérer l'ivar privé dans dealloc. '[e release]' ou '[_e release]' en fonction de la façon dont vous synthétisez. –
Bien sûr, @JackLawrence. Je n'ai pas mentionné cela parce que l'OP a écrit: "L'erreur" decrement incorrect ... "disparaît quand je remplace" [self.e release] "par simplement" [e release]. "" Donc j'ai supposé que le L'erreur '' decrement incorrect ... '' a été corrigée et n'a expliqué que l'erreur '' Fuite potentielle d'un objet ... ''. – albertamg