domanda CALayer Perdita di memoria: iPhone
-
24-09-2019 - |
Domanda
Sarebbe il codice soffietto causa il mio codice di perdite? Più in particolare, sono io responsabile del rilascio della newImage
o il contenuto di mainPageLayer
(che è un oggetto CALayer
)? Ottengo un ricordo avviso ogni 4 ° volta che il metodo viene chiamato, ma non posso figura fuori perché ...
Ho anche non può capire perché mainPageLayer.contents = [newImage CGImage];
lancia un avvertimento che l'argomento sto passando è di un tempo puntatore incompatibili. L'immagine presenta bene all'interno dello strato.
-(void)setPrimaryPage:(UIImage *)newImage {
pImageSizeWidth = newImage.size.width;
pImageSizeHeight = newImage.size.height;
[mainPageLayer setFrame:CGRectMake(0, 0, pImageSizeWidth, pImageSizeHeight)];
mainPageLayer.contents = [newImage CGImage];
}
Soluzione
la proprietà contenuto è definito come segue:
@property(retain) id contents
che significa che il CGImageRef
da newImage
viene mantenuta. Sia che le vostre perdite di codice non è chiaro dal codice: Non c'è abbastanza contesto. Si perderà solo se newImage
è stato mantenuto su di chiamare il tuo setPrimaryPage:
.