Я создаю MKMapView в методе с именем «generateMap». Изнутри viewDidLoad это работает:
[self generateMap];
но это заставляет карту быстро загружаться и затем исчезать, оставляя только пустую серую сетку:
[NSThread detachNewThreadSelector:@selector(generateMap) toTarget:self withObject:nil];
Есть идеи, почему это может происходить, когда я вызываю метод через поток?
Я закончил тем, что сделал это:
-(void)viewDidLoad {
[NSThread detachNewThreadSelector:@selector(spinTheSpinner) toTarget:self withObject:nil];
[self performSelectorOnMainThread:@selector(generateMap) withObject:nil waitUntilDone:NO];
[super viewDidLoad];
}
Это позволяет мне иметь счетчик (UIActivityIndicator) и загружать MKMapView, как я хочу. Я установил «waitUntilDone: No]», чтобы экран переключал MapView, прежде чем это будет сделано с generateMap. В противном случае мы не увидели бы счетчик и увидели бы только пустой экран до тех пор, пока не был создан generateMap.