Утечка памяти UIImagePickerController

Я вижу огромную утечку памяти при использовании UIImagePickerController в моем приложении для iPhone. Я использую стандартный код из документов Apple для реализации элемента управления:

    UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.delegate = self;
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        switch (buttonIndex) {
            case 0:
                imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
                [self presentModalViewController:imagePickerController animated:YES];
                break;
            case 1:
                imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
                [self presentModalViewController:imagePickerController animated:YES];
                break;
            default:
                break;
        }
    }

И для отмены:

-(void) imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
    [[picker parentViewController] dismissModalViewControllerAnimated: YES];
    [picker release];
}

Обратный вызов didFinishPickingMediaWithInfo такой же стандартный, хотя мне даже не нужно ничего выбирать, чтобы вызвать утечку.

Вот что я вижу в инструментах, когда все, что я делаю, это открываю UIImagePickerController , выбираю фото-библиотеку и нажимаю «Отмена» несколько раз. Как видите, объем памяти продолжает расти, и в конечном итоге мое приложение для iPhone сильно замедляется.

enter image description here

Как видите, я открывал средство выбора изображений 24 раза, и каждый раз он выделял 128kb, которые так и не были выпущены. Обычно 3 МБ из моих 6 МБ никогда не высвобождаются.

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

Вот что я вижу, когда углубляюсь в эти две строки:

enter image description here

Любая помощь здесь будет принята с благодарностью! Опять же, мне даже не нужно выбирать изображение. Все, что я делаю, это представляю контроллер и нажимаю «Отмена».

Обновление 1

Я загрузил и запустил пример Apple с использованием UIIMagePickerController , и я вижу ту же утечку, которая происходит там при запуске инструментов (как симуляторе и по телефону).

http://developer.apple.com/library/ios/#samplecode/PhotoPicker/Introduction/Intro.html%23//apple_ref/doc/uid/DTS40010196

Все, что вам нужно нужно нажимать кнопку библиотеки фотографий и снова и снова нажимать «Отмена», вы увидите, что объем памяти продолжает расти.

Есть идеи?

Обновление 2

Я вижу эту проблему только при просмотре библиотеки фотографий. Я могу сделать снимок, открывать и закрывать его снова и снова, без утечки.

8
задан MadhuP 18 December 2012 в 11:01
поделиться