簡體   English   中英

pdf查看器泄漏代碼

[英]Leaking code for pdf viewer

我寫了一些代碼來顯示pdf文件的頁面。 不幸的是,下面的代碼似乎正在泄漏,但我找不到泄漏。 誰可以幫助我改進此代碼? 提前致謝。

    CGPDFPageRef page = CGPDFDocumentGetPage(pdf, pageNr);
    CGPDFPageRetain(page);

    CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);

    float pdfScale = self.view.frame.size.width/pageRect.size.width;
    pageRect.size = CGSizeMake(pageRect.size.width*pdfScale, pageRect.size.height*pdfScale);

    UIGraphicsBeginImageContext(self.view.bounds.size);
    CGContextRef context = UIGraphicsGetCurrentContext();   
    CGContextSetRGBFillColor(context, 1.0,1.0,1.0,1.0);
    CGContextFillRect(context,pageRect);
    CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page,kCGPDFMediaBox,self.view.bounds, 0, true);
    CGContextSaveGState (context);
    CGContextTranslateCTM(context, 0.0, self.view.bounds.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);
    CGContextConcatCTM (context, pdfTransform);
    CGContextClipToRect (context, CGPDFPageGetBoxRect(page,kCGPDFMediaBox));
    CGContextDrawPDFPage(context,page);

    CGContextRestoreGState(context);
    UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    CGPDFPageRelease(page);

如果您在CGContextDrawPDFPage中泄漏的是我的應用程序,那么這是一個已知問題,據說在iOs4.0中已得到糾正,但實際上並非如此。 檢查此雷達

更新:我已經檢查過,實際上它現在僅在具有iOs 4.1的iPhone 3上泄漏,而不是在iPhone4(iOs 4.2)和iPad(iOs 4.2)上泄漏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM