Утечка памяти drawInRect на iOS5.0.1

У меня есть следующий фрагмент кода, который я использую для масштабирования изображений. Это цикл, который создает и осушает пул автозапуска для каждого прохода. Этот код отлично работает в симуляторе в iOS5.0, в iOS4.3 на iPad или симуляторе, но на iOS5.0.1 на iPad1 после 50-60 проходов drawInRect начинает потреблять память, которая никогда не освобождается. Я вызывал это из вторичного потока, но теперь вызываю операции масштабирования в основном потоке.

UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Я что-то делаю не так или это ошибка iOS5.0.1?

Обновление: Я пробовал много тестов. Мне удалось доказать, что тот же самый код, скомпилированный с помощью XCode 4.0, отлично работает на том же iPad. Тот же код, скомпилированный с помощью XCode 4.2.1, вызывает состояние нехватки памяти. Эта процедура масштабирования вызывается в фоновом потоке. Я написал другую процедуру масштабирования, используя вызовы базовой графики нижнего уровня. Он не протекает с XCode 4.0, но дает утечку в моем приложении с XCode 4.2.1. Точно такая же процедура и дерево вызовов, выполняемые в автономном проекте, похоже, не приводят к утечке (большой) памяти в XCode 4.2.1. Я жду ответа от Apple по этому поводу. А пока мне нужно использовать XCode 4. Единственный установочный образ, который у меня есть, требует Snow Leopard, что означает, что я использую свою старую 5,5-летнюю машину. Спасибо

Обновление 1/2012 {{1} } Это происходит только в том случае, если приложение запускается из XCode.Тот же исполняемый файл, запущенный на iPad, не обнаруживает утечки. Другое приложение с той же процедурой не обнаруживает утечки.

Я открыл отчет об ошибке в Apple и отправил им проект, в котором воспроизводится проблема. Я не ожидаю, что он будет решен в ближайшее время, но он не кажется таким распространенным, как я первоначально думал.

Обновление от 6/2012 Несмотря на то, что Apple отправила минимальный проект, в котором воспроизводится проблема, они заявляют, что не могут воспроизвести проблему, и не добиваются каких-либо успехов в ее решении.

12
задан Brad Larson 7 May 2012 в 02:42
поделиться