2010-05-24 7 views
2

Mon application a bien fonctionné sur iPhone SDK 3.1. Toutefois, lorsque j'essaie de l'exécuter dans 3.2 simulateur, j'obtiens l'erreur suivante et il se bloque:Mon appli se bloque sur Iphone SDK 3.2

bool _WebTryThreadLock (bool), 0x5148280: J'ai essayé d'obtenir le verrou Web à partir d'un thread autre que le thread principal ou le web fil. Cela peut être le résultat d'un appel à UIKit à partir d'un thread secondaire. Crashing now ... Signal de réception du programme: "EXC_BAD_ACCESS".

Quand je le débugger, il me conduit à cette paix de code:

- (void)LoginViewToCheckView:(id)sender { 
CheckViewController *tempTestController = [[CheckViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
[tempTestController setDelegate:self]; 
[self setCheckViewController: tempTestController]; 
[tempTestController release]; 

[navigationController pushViewController:checkViewController animated:YES];} 

Autre chose intéressante à mentionner est peut-être que je fais appel cette fonction d'un thread séparé.

Des idées sur ce qui pourrait être faux?

Répondre

2

Exactement cela: vous accédez à des objets UIKit d'un autre thread que le thread principal. Vous ne pouvez pas pousser un contrôleur de vue sur un thread d'arrière-plan.

Vous pouvez utiliser le -[performSelectorOnMainThread:withObject:waitUntilDone:] de NSObject pour exécuter cette méthode sur le thread principal.

Et, b.t. les méthodes commencent par une lettre minuscule en Objective-C.

Questions connexes