Функция запускается без ожидания завершения предыдущего - PullRequest
0 голосов
/ 17 февраля 2010

У меня проблема с функцией, запущенной до того, как предыдущая успела закончить. Согласно журналам они оба запускаются, но почти как если бы функция, вызванная из AppDelegate, помещалась в отдельный поток.

-(IBAction) checkLocation {
[AppDelegate locateMe];
[self checkForChangeAndReloadTable];    
}

Функция locateMe может вызываться из нескольких представлений, которые могут по-разному обрабатывать информацию. Он находит местоположение пользователя и сохраняет его по умолчанию. checkForChangeAndReloadTable проверяет значения по умолчанию и, если местоположение изменилось, перезагружает таблицу с новой, более актуальной информацией. Кажется, что изменение происходит после проверки, поэтому это работает, если функция checkLocation дважды вызывается пользователем.

Это ожидается? Есть идеи как обойти это?

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

вы можете использовать уведомления для обработки асинхронных событий. Основная идея состоит в том, чтобы установить уведомление, которое вызывает checkForChangeAndReloadTable, когда locateme завершает

1 голос
/ 17 февраля 2010

Невозможно определить исходный код методов locateMe или checkForChangeAndReloadTable, но некоторые методы CoreLocation работают асинхронно, что, вероятно, является вашей проблемой.

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