EXC_BAD_ACCES puchviewcontroller tableview
У меня проблема при компиляции моего проекта для ios5. Этот код ниже работает на ios4.3. Во время выполнения ядро генерирует исключение Маха EXC_BAD_ACCESS в этой строке:
[[self navigationController] pushViewController:choixQuotidienTableViewController animated:YES];
В didSelectRowAtIndexPath для моей таблицы:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
// requête avec la langue choisie
NSArray *codes = [arrayLangages valueForKey:@"code"];
NSString *codeSelect = [codes objectAtIndex:indexPath.row];
//NSLog(@"selected code : %@", codeSelect);
// init table view Choix Quotidien
ChoixQuotidienTableViewController *choixQuotidienTableViewController = [[ChoixQuotidienTableViewController alloc] initWithStyle:UITableViewStylePlain andCode:codeSelect];
//choixQuotidienTableViewController.fromLangue = resultsArrayKioskLangue;
if([self navigationController] == nil)
{
NSLog(@"navigationController IS NIL!!!");
}
else
{
NSLog(@"Nav controller IS OK!");
if(!choixQuotidienTableViewController)
{
NSLog(@"choixcontroller IS NIL!!!");
}
else
{
NSLog(@"choix controller IS OK!");
[[self navigationController] pushViewController:choixQuotidienTableViewController animated:YES];
}
}
choixQuotidienTableViewController = nil;
}
Не могли бы вы помочь мне? что-то изменилось в ios5?
Спасибо!
ОБНОВЛЕНИЕ: ОК, что-то новое...: Я использовал профиль> Зомби. Этот инструмент показал мне ошибку в [ChoixQuotidienTableViewController tableView:cellForRowAtIndexPath:] ... CRAZY!
Я использовал пользовательскую ячейку... когда я исправляю это работает...
Спасибо за вашу помощь!
2 ответа
Трудно сказать без кода.
BAD_ACCESS не создается этим кодом. Но знайте, что choixQuotidienTableViewController
будет течь, если вы не отпустите его (кроме случаев, когда вы используете ARC).
Убедиться, что [self navigationController]
возвращает действительный объект, который не был освобожден.
Также может помочь трассировка стека отладчика.
Ты пробовал [choixQuotidienTableViewController release];
вместо choixQuotidienTableViewController = nil;
?