Vous pouvez utiliser l'instrument Allocations pour suivre le cycle de vie de vos objets. Si vous utilisez le modèle "Allocations", il est configuré pour enregistrer les événements malloc
et free
. Vous voudrez peut-être le configurer pour enregistrer également les événements retain
, release
et autorelease
en activant la case à cocher "Enregistrer les comptages de référence" dans les paramètres de l'instrument Allocations :
(Vous ne pouvez pas basculer cette option pendant l'enregistrement d'Instruments, qui démarre automatiquement dès que vous choisissez votre modèle.)
Mise à jour pour Xcode 9 : Apple a rendu plus difficile de trouver ces paramètres. Vous devez maintenant sélectionner l'instrument Allocations, puis dans la barre de menu choisir Fichier > Options d'enregistrement.
Après votre exécution, vous pouvez trouver vos objets en utilisant l'affichage Allocations > Statistiques > Résumé des objets, qui est le paramètre par défaut pour le volet Détail (la moitié inférieure de la fenêtre) :
Si vous souhaitez voir les objets qui ont été désalloués avant l'arrêt de l'exécution, vous devez modifier le paramètre Durée de vie de l'allocation de "Créés et toujours existants" (le paramètre par défaut) à "Tous les objets créés" :
Pour trouver des objets d'une classe spécifique, commencez par taper le nom de la classe dans le champ de recherche à l'extrémité droite de la barre d'outils de la fenêtre. Ensuite, trouvez le nom de la classe dans la colonne Catégorie de la vue en liste, survolez-le à la souris et cliquez sur la flèche qui apparaît à côté. Par exemple, mon application a une classe appelée Tile
, donc je recherche cela puis clique sur la flèche à côté de Tile
dans la vue en liste :
Maintenant, la vue en liste affiche chaque instance de Tile
. (Remarquez que vous devez entrer la classe réelle de l'objet, pas une superclasse. Entrer NSObject
ne trouvera que les objets créés par [NSObject alloc]
, pas les objets créés par [Tile alloc]
.) Je peux voir l'historique pour une instance particulière en cliquant sur la flèche à côté de l'adresse de cette instance :
Dans la vue détaillée d'un objet, je peux voir les événements malloc
et free
et, puisque j'ai activé "Enregistrer les comptages de référence", je peux également voir les messages retain
, release
et autorelease
et leur effet sur le comptage de rétention de l'objet. Si je veux voir la pile d'appels pour l'un de ces événements, je peux ouvrir le panneau détaillé étendu sur le côté droit de la fenêtre :