2010-08-04 6 views
0

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]; 
+0

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

Répondre

2

Vous avez overreleased un objet. Votre application est signalée lorsque vous tentez de libérer le pool d'autorelease. Cela signifie que quelque chose dans la piscine a déjà été libéré et libéré auparavant. Essayez Build & Analyze ou NSZombies pour trouver le problème.

Je ne pense pas que cela a à voir avec votre threading, comme vous l'avez mentionné, il me semble juste.

+0

C'était tout. Pas un problème de threading. Je libérais un tableau auto-publié dans le nouveau contrôleur de vue. – raheel

Questions connexes