2011-02-25 7 views
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); 
+1

'UIWebView'를 사용하여 PDF를 표시 할 수 있다는 것을 알고 계십니까? –

+0

왜 CGPDFPageRetain (페이지)을 사용합니까? ... 그때 당신은 CGPDFPageRelease (page)를 사용합니다; ? 코드의 모든 라인이 같은 방법으로 게시됩니까? 그렇다면 유지/해제 할 필요가 없습니다. 그러면 ... 누수가 "pdf"와 "pageNr"할당에 있지 않은 것이 확실합니까? 할당을위한 코드를 생략했습니다 ... – meronix

답변

0

같은 새는 경우는 CGContextDrawPDFPage에서 내 응용 프로그램, 다음은 iOs4.0에서 수정 될 수 있다고 알려진 문제입니다,하지만 실제로는 아니다. 이 Radar을 확인하십시오.

UPDATE : 지금 확인하고 실제로 대신 아이폰 4에 iOS의 4.1, IOS (4.2)과 아이 패드 (iOS 용 4.2) 누출되지 만 내 아이폰 3에 지금 유출된다.