我有以下代碼PDF對象產生存儲器泄漏
NSString *filePath=[[NSString alloc] initWithString:[[NSBundle mainBundle] pathForResource:pdfname ofType:@"pdf" inDirectory:@"appMasterPdf"]];
NSURL *url = [NSURL fileURLWithPath:filePath];
[filePath release];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)url);
CGFloat scaleRatio;
UIGraphicsBeginImageContext(CGSizeMake(width, height));
CGContextRef context = UIGraphicsGetCurrentContext();
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, pageNumber);
pageRect = CGPDFPageGetBoxRect(page, kCGPDFBleedBox);
width=pageRect.size.width;
height=pageRect.size.height;
if(pageRect.size.width/pageRect.size.height < 1.0) {
scaleRatio = height/pageRect.size.height;
}
else {
scaleRatio = width/pageRect.size.width;
}
CGFloat xOffset = 0.0;
CGFloat yOffset = height;
if(pageRect.size.width*scaleRatio<width) {
xOffset = (width/2)-(pageRect.size.width*scaleRatio/2);
}
else {
yOffset = height-((height/2)-(pageRect.size.height*scaleRatio/2));
}
CGContextTranslateCTM(context, xOffset, yOffset);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSaveGState(context);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page,
kCGPDFBleedBox, CGRectMake(0, 0, pageRect.size.width, pageRect.size.height),
0, true);
pdfTransform = CGAffineTransformScale(pdfTransform, scaleRatio, scaleRatio);
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
UIImage *tempImage = UIGraphicsGetImageFromCurrentImageContext();
CGContextRestoreGState(context);
UIGraphicsEndPDFContext();
UIGraphicsEndImageContext();
CGContextRelease(context);
CGPDFPageRelease(page);
return tempImage;
該功能acalling在for循環
CGPDFDocumentRef PDF = CGPDFDocumentCreateWithURL((CFURLRef)URL); 這些行給我一個內存泄漏。 請幫幫我。先進的Thanx
它生成錯誤加密 – user373017 2010-07-06 10:02:55
你在哪裏添加這個? – taskinoor 2010-07-06 11:02:11
此後添加 UIGraphicsEndPDFContext(); UIGraphicsEndImageContext(); 2行 – user373017 2010-07-06 13:24:44