我在显示pdf页面方面已经工作了很长时间。 在我的应用程序中,我应该重新显示pdf页面数百万次 - 但每当我释放我的页面 - [查看发布])时使用工具 - 分配 - 我看到一些空间总是留下 - 当我重新创建我的视图时draw:inRect - 显示pdf,即使它与之前的相同(想想,某些信息像某些预缓存一样存储)
有人有同样的问题吗? 特别是如果你使用大小为5Mb或更多的pdf页面 - 你的应用程序会在一段时间内崩溃
基本绘图 - 像这样:
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Initialization code
self.backgroundColor = [UIColor clearColor];
NSString *pdfStringURL = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"];
NSURL *pdfURL = [NSURL fileURLWithPath:pdfStringURL];
pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfURL);
}
return self;
}
- (void)drawRect:(CGRect)rect {
CGPDFPageRef pdfPage2 = CGPDFDocumentGetPage(pdf, 1);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(ctx, -13, self.frame.size.height+15);
CGContextScaleCTM(ctx, 1.1, -1.1);
CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(pdfPage2, kCGPDFCropBox, self.frame, 0, true));
CGContextSetInterpolationQuality(ctx, kCGInterpolationNone);
CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault);
CGContextDrawPDFPage(ctx, pdfPage2);
}
- (void)dealloc {
CGPDFDocumentRelease(pdf);
[super dealloc];
}
}
我怎样才能完全释放记忆!?