Je reçois un plantage EXC_BAD_ADDRESS
lors de la sélection de la cellule d'une table qui devrait pousser une nouvelle vue sur le contrôleur de navigation.Échec étrange lors de la sélection d'une cellule UITableView
Voici la trace de la pile (le CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION_
est toujours là):
alt text http://dl.dropbox.com/u/71415/crash_threads.jpg
Je soupçonne fortement le nouveau code, j'ai ajouté pour charger les données initiales aux besoins d'applications dans un thread séparé, en partie parce que les init
et loadView
du nouveau contrôleur de vue sont appelés et retournent bien. Je fais un [NSThread detachNewThreadSelector:@selector(loadData) toTarget:self withObject:nil];
en applicationDidFinishLaunching
puis charge une vue montrant un indicateur de progression. loadData
fait [self performSelectorOnMainThread:@selector(setupMainUI) withObject:nil waitUntilDone:NO];
lorsque les données sont prêtes. L'interface utilisateur (table et tout) est bien chargée, les données fraîches se révèlent très bien; C'est seulement quand une nouvelle vue doit être poussée que l'accident se produit. La commutation des vues via le contrôleur de tabulation fonctionne également.
Des idées? Merci.
Mise à jour:
C'est ce que je fais pour charger le nouveau contrôleur de vue:
NSArray *arrayForSection = [filteredGobos objectAtIndex:indexPath.section];
Employee *selectedEmployee = [arrayForSection objectAtIndex:indexPath.row];
if (self.employeeVC == nil) {
EmployeeVC *emplVC = [[EmployeeVC alloc] initWithEmployee:selectedEmployee];
self.employeeVC = emplVC;
}
[self.navigationController pushViewController:employeeVC animated:YES];
affiche du code dans lequel vous créez et affichez une nouvelle vue. EXC_BAD_ADDRESS signifie que vous essayez d'accéder à quelque chose qui n'est pas là. – lukya