Страницы PDF не освобождаются полностью! - PullRequest
1 голос
/ 15 марта 2011

Я давно работаю с отображением 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];
}
}

как я могу полностью освободить память!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...