2010-04-06 5 views
0

Est-ce que le code ci-dessous provoquerait la fuite de mon code? Plus précisément, je suis responsable de la libération du newImage ou du contenu de mainPageLayer (qui est un objet CALayer)? Je reçois un avertissement de mémoire toutes les 4 fois que cette méthode est appelée, mais je n'arrive pas à comprendre pourquoi ...iPhone: problème de fuite de mémoire CALayer

Je ne peux pas non plus comprendre pourquoi mainPageLayer.contents = [newImage CGImage]; jette un avertissement que l'argument que je passe est d'un pointeur incompatible. L'image apparaît très bien à l'intérieur de la couche.

-(void)setPrimaryPage:(UIImage *)newImage { 
pImageSizeWidth = newImage.size.width; 
pImageSizeHeight = newImage.size.height; 

[mainPageLayer setFrame:CGRectMake(0, 0, pImageSizeWidth, pImageSizeHeight)]; 
mainPageLayer.contents = [newImage CGImage]; 
} 

Répondre

0

le contenu propriété est définie comme suit:

@property(retain) id contents 

ce qui signifie que le CGImageRef de newImage est conservée. Si votre code ne fuit pas de votre code: il n'y a pas assez de contexte. Il ne fuira que si newImage a été retenu lors de l'appel de votre setPrimaryPage:.