pregunta CALayer Pérdida de memoria: iPhone
-
24-09-2019 - |
Pregunta
¿Podría el fuelle código de causa mi código a la fuga? Más específicamente, ¿soy responsable de la liberación de la newImage
o el contenido de mainPageLayer
(que es un objeto CALayer
)? Recibo una advertencia de memoria cada vez que cuarto método se llama, pero no puede cifra por qué ...
También puede averiguar por qué no mainPageLayer.contents = [newImage CGImage];
lanza una advertencia de que el argumento es que estoy pasando un tiempo de puntero incompatible. La imagen muestra hasta bien dentro de la capa.
-(void)setPrimaryPage:(UIImage *)newImage {
pImageSizeWidth = newImage.size.width;
pImageSizeHeight = newImage.size.height;
[mainPageLayer setFrame:CGRectMake(0, 0, pImageSizeWidth, pImageSizeHeight)];
mainPageLayer.contents = [newImage CGImage];
}
Solución
la propiedad contenidos se define como sigue:
@property(retain) id contents
que significa que el CGImageRef
de newImage
se conserva. Ya sea que sus fugas de código no se desprende de su código: No hay suficiente contexto. Sólo se escapará si newImage
se retuvo al llamar a su setPrimaryPage:
.