Я почти уверен, что
UIImagePNGRepresentation([UIImage imageWithCGImage:imageRef])
является причиной случайных утечек памяти при выполнении в фоновом потоке (это вызывает утечки, которые прослеживаются до CGContextDrawPDFPage!).
Теперь, везде в Интернете говорят, что я должен использовать CGImageDestination, которая недоступна до iOS4. Есть ли способ для меня, чтобы закодировать растровое изображение в формате PNG, кроме импорта тяжеловесных библиотек PNG?
РЕДАКТИРОВАТЬ: Теперь это интересно. Для всего фонового потока, который создает PNG, я опорожняю пул автоматического выпуска каждые 10 сгенерированных PNG. Предупреждения памяти и сбой исчезают после добавления пула автоматического восстановления вокруг сохранения. Эти звонки требуют памяти?
NSAutoreleasePool* savePool = [[NSAutoreleasePool alloc] init];
NSData* imageData = UIImagePNGRepresentation([UIImage imageWithCGImage:imageRef]);
[imageData writeToFile:savePath atomically:NO];
[savePool drain];