память заполнена взглядами и сбоями - PullRequest
0 голосов
/ 05 марта 2012

У меня проблема с моим приложением. У меня 18 просмотров, но при просмотре каждый шаг времени потребляет больше памяти. После сбоя приложения.

while ([self.view.subviews count] > 0) { 
        [[self.view.subviews lastObject] removeFromSuperview]; 
    }

    [self presentViewController:[[proj_lletrac_14_ontroller alloc] init] animated:NO completion:nil];
    [proj_lletrac_14_Controller release];
    [proj_lletrac_13_Controller release];

Этот код является небольшим примером

Мой английский плохой, я говорю по-испански :)

Спасибо

1 Ответ

0 голосов
/ 05 марта 2012

Проблема в том, что вы передаете выделенный объект, а не отпускаете его. Вам нужно иметь его в переменной, чтобы вы могли его освободить:

proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];
[self presentViewController:viewController animated:NO completion:nil];
[viewController release];

Итак, пошагово выделите экземпляр переменной:

proj_lletrac_14_ontroller *viewController = [[proj_lletract_14_ontroller alloc] init];

Передача экземпляра в метод presentViewController:

[self presentViewController:viewController animated:NO completion:nil];

Теперь вам не нужно беспокоиться об экземпляре, чтобы освободить выделенный объект:

[viewController release];

Простое управление памятью.

Никогда не выделяйте объект при передаче в функции, если вы не поместите его в пул авто-релиза:

[self presentViewController:[[[proj_lletrac_14_ontroller alloc] init] autorelease] animated:NO completion:nil];

Но это плохая практика управления памятью. Вы должны выпустить все, что вы знаете, что вам больше не нужно.

...