J'ai créé une méthode de catégorie NSScanner qui indique une fuite dans les instruments. Je pense que c'est la façon dont je passe la valeur de/à la méthode, mais je ne suis pas sûre. C'est une petite fuite (32 octets), mais j'aimerais bien le faire si je le peux. Merci d'avance.Fuite dans la méthode de la catégorie NSScanner
Répondre
J'ai trouvé la réponse. J'ai eu une classe de modèle qui a utilisé le résultat du code ci-dessus, mais j'ai oublié de libérer la propriété dans la méthode dealloc. J'aurais dû l'attraper avec des instruments, mais je ne savais pas où regarder. Je me suis retrouvé dans la pile d'appels dans les détails étendus, qui ne contenaient qu'une partie de l'information dont j'avais besoin.
Pour des crétins comme moi, voici ce que je faisais:
- Exécutez votre application avec des instruments ... Fuites.
- Dans Instruments, observez la vue des blocs qui fuient (l'icône de la grille en bas) et activez les détails étendus.
- Si vous avez plusieurs objets qui ont fui, cliquez sur le triangle d'affichage afin de pouvoir regarder une adresse discrète.
- À côté d'une adresse, il y aura une flèche de détail. Clique dessus.
- Vous allez maintenant regarder l'histoire. Il commence par Malloc et vous montre chacun conserver et libérer.
Vous devriez avoir une version pour le malloc et une version pour chaque conservation dans l'histoire. Faites correspondre vos retenues et communiqués et recherchez l'oddball. En cas de doute, regardez vers le bas de la page et examinez attentivement les propriétés que vous avez oublié de publier dans votre/vos méthode (s) dealloc.
+1 Une bonne description de la façon d'utiliser les fuites pour les débutants. –
OK, je suis stupide. Cette méthode ne fuit pas. La fuite est plus loin dans ma pile d'appels, mais je ne peux pas savoir où. Désolé pour le message prématuré. Je ferai un suivi lorsque je découvrirai où se trouve la vraie fuite, si je ne peux pas résoudre le problème moi-même.
En réponse au commentaire de Yuji, mon appel de méthode est:
NSString *title;
[fileScanner scanBetweenPrefix:kTitlePrefix
andSuffix:kTitleSuffix
intoString:&title];
Est-ce le titre & qui est le problème? Je l'ai modelé après les méthodes et les appels NSScanner existants.
Étant donné que la mémoire qui fuit a été allouée, l'explication la plus probable est que, même si vous utilisez le titre après ce code, vous fuyez cette chaîne. – smorgan
jluckyiv: Je ne vois rien de mal dans la méthode de la catégorie ou dans son utilisation. Regardez l'historique de l'adresse de l'objet 'title' dans Instruments pour voir ce qui l'a retenu et n'a pas réussi à le libérer. –
Peter, merci pour le conseil. Je trouve toujours mon chemin autour des instruments. – jluckyiv
- 1. Big Fuite dans Objective-C Catégorie
- 2. structure de la catégorie
- 3. Catégorie avant la classe
- 4. fuite de mémoire iPhone lorsque la méthode renvoie l'objet
- 5. Dispaly Catégorie et Sous-catégorie dans la hiérarchie dans DropDownList
- 6. Où est la fuite?
- 7. Wordpress: Trouver tous les messages dans la catégorie 1 et non dans la catégorie 2
- 8. Vitesse de NSScanner vs NSXMLParser?
- 9. Produit affiché sous sous-catégorie mais pas dans la catégorie
- 10. NSScanner vs componentsSeparatedByString
- 11. Exclure la catégorie de wp_get_archives?
- 12. Méthode de classe ou méthode d'instance avec paramètre pour la catégorie NSDate?
- 13. Trouver la fuite de Javascript dans Chrome
- 14. détecter la fuite de mémoire dans C
- 15. Obtenir la catégorie Nom et catégorie Lien à l'intérieur de la boucle dans WordPress
- 16. Comment utiliser NSScanner?
- 17. Vérifier la fuite de mémoire
- 18. jQuery load() méthode fuite de mémoire?
- 19. afficher la catégorie image de sous-catégorie problème
- 20. Où est la fuite?
- 21. Construire et rendre l'arbre de la catégorie hiérarchique infinie de la table de catégorie auto-référentielle
- 22. NSScanner pour séparer la phrase en mots (objectif C)
- 23. SQL derniers/top articles dans la catégorie
- 24. MySQL Compte Articles Dans la catégorie
- 25. Comment vérifier la fuite de mémoire?
- 26. jfreechart: setItemMargin() différent dans la catégorie possible?
- 27. Copier et coller la catégorie dans Magento
- 28. comment réparer la fuite de mémoire?
- 29. voir les produits de la catégorie dans une nouvelle page
- 30. iOS NSDictionary Copier la fuite de mémoire
Comment avez-vous appelé cette méthode? Comment avez-vous préparé '(NSString **) value' quand vous l'avez appelé? – Yuji
Yuji, merci pour la réponse. Je ne peux pas mettre en forme de code dans le commentaire, alors regardez ma réponse ci-dessous. – jluckyiv