MKMapView должен быть инициализирован в основном потоке - PullRequest
2 голосов
/ 10 января 2012

Я новичок в iphone, использую MKMapView для загрузки карты Google в свое приложение. Но это вызывает исключение "MKMapView должен быть инициализирован в основном потоке." Так где же мне инициализировать мой MKMapView объект? Я инициализирую в viewDidLoad().

спасибо заранее .....

Ответы [ 3 ]

3 голосов
/ 10 января 2012

Причина, по которой он не создается в главном потоке, - один из 2 вариантов

  1. Представление, которое его создает, живет в одном из фоновых потоков
  2. Вы звоните performSelectorInBackground:, чтобы создать свой вид

Для выполнения функции в главном потоке вызов performSelectorOnMainThread:

Не по теме: если для функции требуется более 1 параметра, измените его на NSDictionary, загрузите все свои настройки в словарь и передайте, например,

NSDictionary *params = ...... //load your parameters into here

[myMapView performSelectorOnMainThread:@selector(initMap:)
                                withObject:params
                             waitUntilDone:YES];

Также прочитайте следующие Первый и Второй , чтобы лучше понять многопоточность в iOS

0 голосов
/ 18 января 2017

Я получил эту ошибку:

MKMapView должен быть инициализирован в главном потоке

Когда я пытался изменить содержимое настроенного UITableViewCell таким образом:

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[myIndexPath] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];

The UITableviewCell in the corresponding indexpath contained a MKMapView that I tried to change its region.

myTabelViewCell *cell = [self.tableView cellForRowAtIndexPath:myIndexPath];
[cell setContentWithLatitude:currentLatitude longitude:currentLongitude];

Используйте приведенный выше код вместо [self.tableView reloadData], чтобы обновить только одну ячейку.

0 голосов
/ 19 октября 2016

С Swift 3, следующее обеспечит выполнение вашей функции в главном потоке.OperationQueue.main.addOperation {"Ваш segue или вызов функции"}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...