Причина, по которой он не создается в главном потоке, - один из 2 вариантов
- Представление, которое его создает, живет в одном из фоновых потоков
- Вы звоните
performSelectorInBackground:
, чтобы создать свой вид
Для выполнения функции в главном потоке вызов performSelectorOnMainThread:
Не по теме: если для функции требуется более 1 параметра, измените его на NSDictionary, загрузите все свои настройки в словарь и передайте, например,
NSDictionary *params = ...... //load your parameters into here
[myMapView performSelectorOnMainThread:@selector(initMap:)
withObject:params
waitUntilDone:YES];
Также прочитайте следующие Первый и Второй , чтобы лучше понять многопоточность в iOS