Question

J'ai la fonction suivante:

- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                   kCFAllocatorDefault, 
                   (CFStringRef)self, 
                   NULL, 
                   CFSTR("?=&+/\r\n"), 
                   kCFStringEncodingUTF8
);

return [result autorelease];

}

Pourquoi Clang me donne-t-il les plaintes suivantes?

  • 1 L'appel à la fonction 'CFURLCreateStringByAddingPercentEscapes' renvoie un objet Core Foundation avec un nombre de conservations de +1 (propriété propre)
  • 2 objet envoyé - message de libération automatique
  • 3 Objet renvoyé à l'appelant en tant que référence propriétaire (le nombre de retenues individuelles transféré à l'appelant)
  • 4 Objet over-autoreleased: l'objet a été envoyé -autorelease mais l'objet a zéro (visible localement) rétablit les comptes

À ma connaissance, cela est conforme aux directives d'Apple concernant la gestion de la mémoire et la propriété des objets. Dois-je libérer explicitement l'objet? Cette erreur a été soulevée 19 fois dans mon projet, toutes dans des circonstances similaires. Qu'est-ce que je fais mal?

Était-ce utile?

La solution

J'ai trouvé la réponse à ma propre question, en la publiant ici si quelqu'un d'autre tombe sur le sujet. J'utilisais checker-0.198, checker-0.204 ne signale aucun problème de ce type. Il semble que ce soit une régression temporaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top