подпредставление не добавляется сразу (iphone) - PullRequest
0 голосов
/ 14 мая 2010

При нажатии кнопки возврата на клавиатуре для текстового поля, я хочу добавить UIView, затем подключиться к веб-сайту с NSURlConnection sendsynchronousrequest, и у меня есть код в таком порядке Но когда я запускаю в симуляторе (я не могу запустить на устройстве), сначала запускается соединение, затем добавляется подпредставление (т. Е. Противоположно порядку кода) Почему это так и как это можно остановить, потому что я хочу добавить представление, затем установить соединение, а затем удалить представление.

Ответы [ 2 ]

1 голос
/ 14 мая 2010

Добавляется подпредставление, но представления отрисовываются с помощью runloop. Делая синхронный запрос в основном потоке, вы блокируете цикл запуска, поэтому представление не будет отображаться до тех пор, пока запрос не будет завершен. Выполните запрос асинхронно, либо с помощью асинхронного API, либо с помощью синхронного запроса в фоновом потоке.

0 голосов
/ 14 мая 2010

Многие действия выполняются в цикле выполнения, а не в том порядке, в котором вы кодируете. Если вы действительно хотите кодировать так, как у вас, то executeSelector: withObject: afterDelay: с задержкой 0 может сработать, чтобы вызвать NSURlConnection (вам нужно переместить этот код в метод). *

Как предполагает JK, асинхронный запрос может решить его в любом случае и улучшить пользовательский интерфейс. Я большой поклонник библиотеки ASIHPPTRequest, которая делает асинхронные тривиальными.

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