Je crée un MKMapView dans une méthode nommée "generateMap". De l'intérieur viewDidLoad, cela fonctionne:MKMapView ne se charge pas lorsqu'il est appelé sur un NSThread?
[self generateMap];
mais la carte se charger rapidement et puis disparaissent, ne laissant que la grille grise vierge:
[NSThread detachNewThreadSelector:@selector(generateMap) toTarget:self withObject:nil];
Toutes les idées pour lesquelles cela pourrait se passer quand je l'appelle la méthode à travers un fil?
J'ai fini par faire ceci:
-(void)viewDidLoad {
[NSThread detachNewThreadSelector:@selector(spinTheSpinner) toTarget:self withObject:nil];
[self performSelectorOnMainThread:@selector(generateMap) withObject:nil waitUntilDone:NO];
[super viewDidLoad];
}
Cela me permet d'avoir une fileuse (UIActivityIndicator) et charger les MKMapView que je veux. J'ai mis "waitUntilDone: No]" de sorte que l'écran change MapView avant qu'il ne soit fait avec generateMap. Sinon, nous ne verrons pas le spinner et ne verrons qu'un écran vide jusqu'à ce que generateMap soit terminé.
Merci pour le suivi! –