Утечка памяти после того, как я сделал фото из UIImagePickerControllerSourceTypeCamera

В моем приложении я запускаю камеру, чтобы пользователь мог сделать снимок:

    UIImagePickerController *imagePickerControllerSubject = [[UIImagePickerController alloc] init];

    imagePickerControllerSubject.delegate = self;

    imagePickerControllerSubject.sourceType =  UIImagePickerControllerSourceTypeCamera;

    [self presentModalViewController:imagePickerControllerSubject animated:YES];

И после того, как фото сделано, у меня произошла утечка памяти, можете посмотреть мой скриншот из Xcode Instrument.

введите здесь описание изображения

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

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
    {

           [picker dismissModalViewControllerAnimated:YES];

           return;

    }

Я использую ARC, поэтому мне не нужно выпускать imagePickerControllerSubject

Вот скриншот из Xcode Instruments

Я использую последнюю версию ios7

Есть идеи ?

Спасибо

РЕДАКТИРОВАТЬ

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

    #import "FeedbackVC.h"

    @interface FeedbackVC ()

    @end

    @implementation FeedbackVC

    - (IBAction)onClickTakePicture
    {

        NSLog(@"onClickTakePicture");

        imagePickerControllerSubject = [[UIImagePickerController alloc] init];

        imagePickerControllerSubject.delegate = self;

        imagePickerControllerSubject.sourceType =               UIImagePickerControllerSourceTypeCamera;

        [self presentModalViewController:imagePickerControllerSubject animated:YES];

    }

     - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
     {


         picker.delegate = nil;
         [self dismissViewControllerAnimated:NO completion:nil];
         picker = nil;

         NSLog(@"imagePickerController");

     }

     - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
     {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

        if (self)
        {
            // Custom initialization
            if (self)
            {
              self.navigationItem.title = @"Feedback";

              self.title = @"Feedback";

              self.tabBarItem.image = [UIImage imageNamed:@"second"];
            }

        }


        return self;
    }

    - (void)viewDidLoad
    {
       [super viewDidLoad];

    }

     - (void)didReceiveMemoryWarning
     {
          [super didReceiveMemoryWarning];
          // Dispose of any resources that can be recreated.
     }

     @end

person Jean François Manatane    schedule 22.09.2013    source источник


Ответы (1)


In:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo

Пытаться:

picker.delegate = nil
[self dismissViewControllerAnimated:NO completion:nil];
picker = nil;
person Unheilig    schedule 22.09.2013
comment
Не сработало :( у меня все еще есть утечка памяти, сразу после вызова метода (и только если фотография была сделана камерой) - person Jean François Manatane; 02.10.2013
comment
@JeanFrançoisManatane У вас есть наложение для камеры? Если это так, было бы полезно, если бы вы разместили какой-нибудь код этого. - person Unheilig; 02.10.2013
comment
Нет наложения :( На самом деле я не использую камеру, просто средство выбора изображений с типом источника камеры. - person Jean François Manatane; 03.10.2013
comment
Это исправлено в 7.0.3 - person William Entriken; 10.10.2013