renderInContext / Проблема с памятью - PullRequest
4 голосов
/ 31 марта 2011

У меня проблема. Когда я использую «renderInContext» в iPad, используемая память никогда не освобождается и накапливается до тех пор, пока приложение не закроется с «Предупреждение о памяти» Level = 1 и Level = 2

Мой код:

CGRect mediaBox = CGRectMake(0, 0, 16.54 * 72.0, 24.02 * 72.0);
            CGContextRef ctx = CGPDFContextCreateWithURL((CFURLRef)[NSURL fileURLWithPath:posterPath isDirectory:NO], &mediaBox, NULL);
            CGPDFContextBeginPage(ctx, NULL);
            CGContextScaleCTM(ctx, 0.516, -0.516);
            CGContextTranslateCTM(ctx, 0, -mediaBox.size.height - 1500);
            [[self returnBigView].layer renderInContext:ctx];
            CGPDFContextEndPage(ctx);
            CGPDFContextClose(ctx);
            CGContextRelease(ctx);

Я пробовал несколько способов, но свободной памяти нет. Есть идеи?

** Извините за мой плохой английский

Ответы [ 2 ]

2 голосов
/ 26 августа 2011

У меня тоже была та же проблема, внутри цикла - установка содержимого слоя на ноль работала для меня:

Выпуск результата renderInContext в цикле

0 голосов
/ 01 июня 2011

У меня была такая же проблема. После долгого исследования кажется, что память не была освобождена, потому что код не работал в главном потоке. Поэтому не выполняйте renderInContext, когда вы не работаете с основным потоком!

...