2010-12-07 36 views
0

J'utilise NSThread pour effectuer un travail en parallèle avec le thread principal. J'ai déployé l'application sur iPhone 3G L'application fonctionne comme prévu en première exécution. Mais, quand je ferme l'application et la réexécute, elle se bloque immédiatement. La prochaine fois que je lance l'application, cela fonctionne à nouveau. cela continue à répéter.L'application se bloque sur des exécutions de remplacement lors de l'utilisation de NSThread pour le chargement de la carte

Je ne sais pas pourquoi l'exécution précédente de l'application a un effet sur la prochaine exécution. S'il vous plaît aider!

Voici mon code:

NSThread *th=[[NSThread alloc]initWithTarget:self selector:@selector(loadMap) object:nil]; 
[th start]; 

-(void) loadMap{ 

    NSAutoreleasePool * pool=[[NSAutoreleasePool alloc]init]; 

    //code to load MKMapView 

    [pool release]; 

} 

Merci à l'avance

App ne plantera pas si j'ouvrir une autre application de carte entre deux courses! Aussi App fonctionne très bien si je retire le fil et charger la carte en série

Répondre

0

Je pense que vous devriez passer le temps de lire thread programming reference, sur le chapitre de la gestion Discussion.

+0

J'ai passé plusieurs fois en revue le Guide de programmation Threading. – TheBlackPearl

+0

Pourriez-vous préciser où est l'erreur dans le code, si vous l'avez trouvé? – TheBlackPearl

+0

Dans le document, il est dit que le thread non lié sera terminé directement si l'application se ferme. – AechoLiu