Я давно работаю с отображением PDF-страниц.В моем приложении я должен повторно отображать страницы PDF миллионы раз - но каждый раз, когда я освобождаю свою страницу - [просмотреть выпуск]) при использовании инструментов - выделений - я вижу, что всегда остается некоторое место - и когда я воссоздаю свой вид сdraw: inRect - где отображается pdf, даже если он такой же, как и предыдущий (думал, что некоторая информация хранится как предварительный кеш)
У кого-нибудь была такая же проблема?особенно если вы используете pdf-страницу размером 5 МБ или более - ваше приложение через некоторое время вылетит
базовый рисунок - что-то вроде этого:
- (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];
}
}
как я могу полностью освободить память!