Я использую клиентский объект AFNetworking, который делает асинхронный запрос для XML-документа и анализирует его.NSNotificationCenter - способ ждать уведомления для публикации без блокировки основной темы?
Также с использованием NSNotificationCenter для отправки уведомления, когда документ завершил разбор.
Есть ли способ для ждать для уведомления, которое будет опубликовано без блокировки основной темы?
код например:
-(void)saveConfiguration:(id)sender {
TLHTTPClient *RESTClient = [TLHTTPClient sharedClient];
// Performs the asynchronous fetching....this works.
[RESTClient fetchActiveUser:[usernameTextField stringValue] withPassword:[passwordTextField stringValue]];
/*
* What do I need here ? while (xxx) ?
*/
NSLog(@"Fetch Complete.");
}
В принципе мне интересно, какой код мне нужно в указанной выше области, чтобы гарантировать, что функция не ждет, пока выборки была завершена?
Как сейчас, я увижу «Fetch Complete». в консоли отладки до того, как выборка завершена.
Я попытался добавить флаг BOOL к классу TLHTTPClient:
BOOL fetchingFlag;
, а затем пытается:
while([RESTClient fetchingFlag]) { NSLog(@"fetching...); }
Когда этот класс получает уведомление он устанавливает RESTClient.fetchingFlag = FALSE; который должен технически убить цикл while? За исключением цикла while while выполняется бесконечно?!
Вы могли подождать в другой ветке? – MechEthan
Вы можете разобрать раздельную партию в отдельной теме – Kamal
Если вы зарегистрируетесь для получения уведомления, вы уже ждёте, не блокируя основной поток, не так ли? –