안녕하세요 여기CGContextDrawPDFPage 메모리는
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
CGContextTranslateCTM(ctx, 0.0, layer.bounds.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(myPageRef, kCGPDFCropBox, layer.bounds, 0, true));
CGContextDrawPDFPage(ctx, myPageRef);
}
모두 잘 CATiledlayer에서 PDF를 그리기 내 코드 누출하지만 난 라인을
CGContextDrawPDFPage(ctx, myPageRef);
다음의 메모리 누수 경고를 가지고 github에서 코드를 다운로드하고 R & D를 작성하여 찾았습니다.
나는
내 메모리 누수가 해결이 코드를 작성 후
....// Clean up.
- (void)dealloc {
CGPDFPageRelease(myPageRef);
[super dealloc];
}
당신은 어떻게해야 당신이 어떤 점에서 그것을 유지하는 경우 그. 그러나'CGPDFDocumentGetPage'를 수행하는 중이라면 자동 회수 객체를 얻게되므로 해제하지 않아야합니다. (분명히, 당신이 그것을 유지한다면, 당연히 당신은이 대답에서 제안 된 것처럼 그것을 풀어 놓아야 만합니다.) – Rob
https://stackoverflow.com/questions/46903182/cgcontextdrawpdfpage-memory-leak-app-crash – Ravindhiran