Итак, первый вопрос: как dispatch_async
определяет, какой поток использовать? просто выбирает случайно? Мне нужно выполнить синтаксический анализ и основные данные, поэтому я не хочу блокировать поток пользовательского интерфейса и использовать dispatch_async
, но после этого я отправляю NSURLRequest
для получения дополнительных данных и обратный вызов никогда не вызывается (вероятно, потому что поток уже мертв).
Итак, как это сделать? И я не могу использовать
sendAsynchronousRequest:queue:completionHandler:
, потому что ОС развертывания — 4. Сейчас я просто отправляю запрос внутри
dispatch_async(dispatch_get_main_queue(), ^{
});
, который находится внутри блока dispatch_async(myQueue)
, который выполняет весь синтаксический анализ и сохранение в основные данные. Но мне это кажется неправильным, я имею в виду, что должен быть способ использовать dispatch_async и сказать, чтобы он не убивал протектор, верно? Потому что использование запросов на синхронизацию не вариант.