Программа получила сигнал EXC_BAD_ACCESS - PullRequest
0 голосов
/ 17 января 2012

Когда я нажимаю на кнопку «Готово», код которой

UIBarButtonItem * button = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                                          target:self
                                                                         action:@selector(dismissView:)] autorelease];

self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;
[[self navigationItem] setRightBarButtonItem:button];
[button release];

-(void)dismissView: (id)sender

{

[self.navigationController popToRootViewControllerAnimated:YES];

}

приложение вылетает и выдает сообщение Программа получила сигнал EXC_BAD_ACCESS

Любые идеи, что не так.

Спасибо запомощь.

Ответы [ 3 ]

2 голосов
/ 17 января 2012

Эта строка совершенно неверна:

self.navigationItem.rightBarButtonItem=UIBarButtonSystemItemDone;

Удали это. Вы устанавливаете rightBarButtonItem сразу после этого, а также вы не можете установить rightBarButtonItem на UIBarButtonSystemItemDone - это просто не имеет никакого смысла.

О, и ты переиздаешь button. Удалите также [button release];.

1 голос
/ 17 января 2012

Вы перепродаете button.Его +alloc вызов в первой строке уже уравновешен -autorelease в той же строке - после этого вам не нужно звонить -release.

1 голос
/ 17 января 2012

Вы чрезмерно отпускаете свою кнопку.Вы автоматически выпускаете его при выделении / инициализации, а затем снова отпускаете его после установки в качестве элемента навигации.

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