Frage

Würde der Code unten Ursache meinen Code zu lecken? Genauer gesagt, bin ich den newImage oder den Inhalt von mainPageLayer verantwortlich für die Freigabe (das ist ein CALayer Objekt)? Ich bekomme einen Speicher jedes vierte Mal Warnung, dass Methode aufgerufen wird, aber kann nicht herausfinden, warum ...

Ich kann auch nicht erklären, warum mainPageLayer.contents = [newImage CGImage]; eine Warnung wirft, dass das Argument, das ich vorbei bin eine inkompatiblen Zeiger Zeit. Das Bild zeigt nach oben ganz gut innerhalb der Schicht.

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

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

Lösung

die Inhalte Eigenschaft ist wie folgt definiert:

@property(retain) id contents

was bedeutet, daß die von CGImageRef newImage zurückgehalten wird. Ob Ihr Code Lecks ist nicht klar, aus dem Code: Es gibt nicht genug Kontext. Es wird nur auslaufen, wenn newImage beim Aufruf Ihrer setPrimaryPage: beibehalten wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top