Сбой авто-выпуска утечки памяти - PullRequest
1 голос
/ 10 января 2012

Когда я пытаюсь переключить взгляды с А на Б, все работает.Но когда я хочу вернуться от B к A, приложение вылетает?

Когда я удаляю авто-релиз, приложение работает нормально, но затем оно протекает.

Вот код для переключения представлений:

-(IBAction)switchToExplainView:(id)sender{

explainViewController = [[ExplainViewController alloc]
                         initWithNibName:@"ExplainViewController"
                         bundle:nil];

[self.view addSubview:explainViewController.view];

}

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Используете ли вы навигационный контроллер для переключения между представлениями? Если да, вы можете использовать сообщение [myNavController pushViewController:... animated:...]. После этого вы можете легко отпустить ваш explainViewController.

0 голосов
/ 10 января 2012

Вы должны учитывать и контроллер, и вид.

Контроллер будет удерживать свой вид, но вам нужно удерживать этот контроллер.Если вы (автоматически) отпустите его, оно может быть легко освобождено, и если вы попытаетесь получить к нему доступ, ваше приложение упадет.

Само представление будет освобождено его суперпредставлением, но не контроллером.*

Одним из возможных решений является сохранение этого контроллера в иваре вашего класса, который управляет (переключает) представления.Отпускайте их, только когда закончили с ними.

...