Как тихо вызвать URL в iOS - PullRequest
       18

Как тихо вызвать URL в iOS

0 голосов
/ 10 января 2012

Каков наилучший способ беззвучного вызова URL-адреса

Мой текущий подход заключается в следующем:

NSData *dummyData = [NSData dataWithContentsOfURL:myURL];

Однако я знаю, что сервер возвращает изображение формата 1x1 Pixel,Так что, возможно, есть способ, который не влияет на использование памяти, или лучше подходит для этой цели.

Спасибо.

1 Ответ

3 голосов
/ 10 января 2012

Самая большая проблема с dataWithContentsOfURL: - синхронная загрузка. Это означает, что поток блокируется до завершения загрузки. Это проблема, если соединение медленное или сервер недоступен, он блокируется до истечения времени ожидания. Если вы делаете это в главном потоке, и он блокируется дольше, чем примерно на 0,2 секунды, ваш пользователь заметит, что пользовательский интерфейс не отвечает в течение этого времени.

Почти всегда лучше выполнять асинхронную загрузку, используя NSURLConnection, так как это не заблокирует ваш поток.

См. Руководство по программированию системы загрузки URL-адресов от Apple о том, как реализовать асинхронную загрузку. Это больше печатать, чем твой однострочный, но не сложно. Возможно, вы захотите использовать [NSURLConnection sendAsynchronousRequest: очередь: завершениеHandler:] . Если вы используете более «традиционный» connectionWithRequest:delegate: или initWithRequest:delegate: (как описано в ранее упомянутом руководстве), просто не реализуйте метод делегата connection:didReceiveData:, чтобы игнорировать загруженные данные.

...