0
내 PDF 뷰어 응용 프로그램 때문에 당신이 페이지를 켤 때마다 발생하는 메모리 부추 페이지 4/5 주위에 충돌 유지하기 때문에 내가 연구를 해왔
...아이폰 CGPDFDocumentRef 거대한 메모리 부추
그것은 밝혀 사과에는 버그가 있습니다.
는 여기를 참조 : 나는 당신을 이해하는 것과 https://devforums.apple.com/message/9077#9077
PDF 문서 당신이 페이지를 변경할 때마다 유지 &를 해제해야합니다.
그러나 나는 (이 코드에 UIView의 하위 클래스에) 동작하지 않습니다 :
- (void) drawInContext: (CGContextRef) ctx {
CGPDFDocumentRelease(__pdfDoc);
CGContextSetRGBFillColor(ctx, 1.0, 1.0, 1.0, 1.0);
CGContextFillRect(ctx, CGContextGetClipBoundingBox(ctx));
CGContextTranslateCTM(ctx, 0.0, self.bounds.size.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(pdfPage, kCGPDFCropBox, self.bounds, 0, true));
CGContextDrawPDFPage(ctx, pdfPage);NSLog(@"DONE!");
CGPDFDocumentRetain(__pdfDoc);}
@end
내 PDF가의 ViewController에 여기에 도착한다 :
- (CGPDFPageRef) pdfPage: (NSInteger) index {
if(! __pdfDoc) {
__pdfDoc = CGPDFDocumentCreateWithURL((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"mybook" ofType:@"pdf"]]);}
if(__pdfDoc) {
size_t pdfPageCount = CGPDFDocumentGetNumberOfPages(__pdfDoc);
index++;
if(index < 1)
index = 1;
if(index > pdfPageCount)
index = pdfPageCount;
CGPDFPageRef page = CGPDFDocumentGetPage(__pdfDoc, index);
return page;}
return nil;}
I 수 ' Google에서 아무 것도 찾지 못해 하루 종일 문서를 읽었습니다.
아이디어가 있으십니까?
방법 ???? 어떤 정보도 볼 수 없습니다. – user422241
메신저 SDK 4.0을 다운로드 할 예정입니다. 버그가 수정되면 알려 드리겠습니다. – user422241
와우 - 최근 게시물입니까? 하지만 네가 옳을 수도있어. Afaik에는 Create가 없습니다 : 드로잉 할 때 페이지의 소유권을 나타낼 수있는 것들 - 페이지별로 드로잉 할 때 모든 메모리가 원래 문서 참조에 매달려 있다고 생각합니다. (실제로 Create라는 단어, CGPDFDocumentCreateWithURL을 포함합니다. 소유권을 나타냄)? 어떤 방식 으로든, 당신이 그 (것)들의 유일한 소유권을 결코받지 않는 경우에 이제까지 어떻게 이제까지 필요로 한 페이지의 기억을 해방 할 수있을 것입니까? – Jonny