我写了一些代码来显示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);
答案 0 :(得分:0)
如果你泄漏的是我在CGContextDrawPDFPage中的应用程序,那么这是一个已知的问题,据说在iOs4.0中已得到纠正,但实际上并非如此。请检查此Radar。
更新:我现在已经检查过,实际上它现在仅在我的带有iOs 4.1的iPhone 3上泄漏,而不是iPhone4(iOs 4.2)和iPad(iOs 4.2)没有泄漏。