0
我写了一些代码来显示pdf文件的页面。不幸的是,下面的代码似乎在泄漏,但我找不到泄漏。谁可以帮助我改进此代码?提前致谢。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);
你知道你可以使用'UIWebView'来显示PDF,对吗? – 2011-02-25 10:48:16
为什么使用CGPDFPageRetain(page); ...然后你使用CGPDFPageRelease(page); ?这些代码的所有代码都是用相同的方法发布的吗?如果是这样,你不需要保留/释放它......然后..你确定泄漏不在“pdf”和“pageNr”的分配?你省略了他们分配的代码... – meronix 2011-02-25 11:34:57