Question

Je suis sur le point de terminer ma première application pour iPhone et je me suis dit que je l'exécuterais à l'aide de l'outil Leaks Performance. Après avoir corrigé une erreur évidente, il ne me reste que celle avec un Nib agissant comme une vue d’en-tête de table chargée via loadNibNamed (je suivais la démo Recipes ici).


- (void)viewDidLoad {
    [super viewDidLoad];

    if (self.tableHeaderView == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"TableHeaderView" owner:self options:nil];
        self.tableView.tableHeaderView = self.tableHeaderView;
    }
}

Puis dans dealloc:


- (void)dealloc {
    [tableHeaderView release];
    [super dealloc];
}

Instruments me dit que je perds 256 octets et que 2 fuites proviennent de la ligne avec loadNibNamed. tableHeaderView est le seul objet de niveau supérieur du nib (cela a été vérifié dans le débogueur). Y a-t-il quelque chose que j'oublie de libérer? Est-ce que j'interprète mal ce que dit Instruments? Est-ce faux? Est-ce quelque chose que l'OS va nettoyer plus tard?

Était-ce utile?

La solution

Est-ce que Instruments vous dit cela uniquement sur le simulateur, ou est-ce qu'il rapporte la même chose sur un appareil réel? Si vous ne l'obtenez pas sur l'appareil, il s'agit du simulateur - et c'est ce qui se produit (ce n'est pas une correspondance exacte ).

De plus, dans DealLoc, ne s'agirait-il pas de [version de self.tableHeaderView] ? Vous devez être cohérent avec votre utilisation.

Pour éviter toute confusion, dans votre .h, vous déclarez ceci:

NS/UI/??xxxxxx *_MyObjectName;   //notice the underscore

Ensuite, la propriété ressemble à ceci:

@property .... NS/UI/??xxxxxx *MyObjectName;   //no underscore

Puis synthétisez les getters / setters comme ceci:

@synthesize MyObjectName=_MyObjectName;

Enfin, faites référence à l'objet tout au long du programme avec [self.MyObjectName ...];

Autres conseils

Lorsque vous chargez un nib, vous êtes responsable de la publication de tous les objets de niveau supérieur du fichier nib. Y a-t-il quelque chose dans ce fichier en dehors de TableHeaderView?

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