Разработка iPhone - Основная тема - PullRequest
1 голос
/ 05 августа 2011

Я новичок в разработке для iPhone, и я хотел бы задать вопрос об асинхронных событиях.

Предположим, у меня есть NSURLConnection и соответствующие методы делегата, т.е. didReceiveResponse, didFailWithError и т. Д. Методы вызываются асинхронно при возникновении событий. Все ли методы выполняются в основном потоке? Или iOS создает отдельные потоки, которые выполняют соответствующий код метода?

Я сталкиваюсь с некоторыми случайными сбоями в моем приложении и думаю, что это проблема синхронизации.

1 Ответ

2 голосов
/ 05 августа 2011

Методы делегата NSURLConnection выполняются в основном потоке. В этом вся причина асинхронности, поэтому нет необходимости иметь отдельный поток.

Что касается внутренних компонентов, то ввод / вывод является асинхронным миром, поэтому я также не думаю, что внутри NSURLConnection используется многопоточность. Я полагаю, что именно ОС управляет связью асинхронно, но я не уверен в этом.

В любом случае, вы можете быть уверены, что ваши методы делегата выполняются из основного потока.

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