2009-11-01 5 views
0

J'ai ce code:fuite de mémoire dans sizeWithFont iphone

[[data objectForKey:[keys objectAtIndex:0]] 
        sizeWithFont:[UIFont systemFontOfSize:12] 
        constrainedToSize:CGSizeMake(276.0, 1000.0) 
        lineBreakMode:UILineBreakModeTailTruncation]; 
données

est un NSDictionary.

On dit que ce code a une fuite de 16 octets, mais je ne peux pas le trouver.

Aide

+1

Vous devez fournir plus de détails. Tout ce que vous avez il ya un accès à quelque chose dans une classe de collection, vous devez montrer comment l'objet est alloué, quelle est sa portée, etc. Avez-vous essayé d'utiliser l'outil Fuites disponible sous Instruments? –

Répondre

2

De quel type le NSDictionary retourne-t-il?

[[data objectForKey:[keys objectAtIndex:0]] 

divisez l'instruction de mieux savoir où la fuite peut être:

NSString *s = [[data objectForKey:[keys objectAtIndex:0]]; 
CGSize size = [s sizeWithFont:[UIFont systemFontOfSize:12] 
      constrainedToSize:CGSizeMake(276.0, 000.0) 
       lineBreakMode:UILineBreakModeTailTruncation]; 
0

-vous fuyez un seul bloc de 16 octets pour toute la vie de votre application? Ou fuyez-vous 16 octets à chaque fois à travers une boucle?

Si ce n'est que 16 octets, je ne suis pas sûr si je m'inquiéterais trop à ce sujet. Je dis que, étant donné que certains de la mise en cache que j'ai vu fait par l'OS a tendance à ressembler à une fuite.