Я пишу приложение для какао, в котором я хочу загрузить файл с веб-сервера. Каким будет самый удобный способ сделать это? Должен ли я использовать NSSockets или NSUrlRequest? Или есть ли другой более простой способ достичь этого?Доступ к веб-серверу из приложения какао
ответ
Простейшей задачей, вероятно, является использование NSURLDownload с NSURLRequest.
Если вы хотите загрузить содержимое файла в память, многие классы данных Cocoa, такие как NSString, NSData и даже NSDictionary, имеют методы initWithURL:
, которые инициализируются непосредственно содержимым веб-запроса. Они очень просты в использовании, но они не очень гибкие или обеспечивают хорошую обработку ошибок. NSURLConnection обеспечивает более гибкий способ загрузки данных, если вам это нужно.
Если вы хотите скачать файл прямо на диск, то NSURLDownload будет лучшим выбором.
Предупреждение: методы initWithURL: блокируются, что является большой проблемой, если файл большой, сервер медленный, интернет-соединение пользователя происходит медленно и т. Д. Не вызывайте их из основного потока ,
У вас также нет сообщений о проделанной работе, поэтому , когда загружается медленно, у вас нет способа рассказать пользователю, как далеко он продвинулся или насколько дольше он будет длиться.
В большинстве случаев вы должны использовать NSURLDownload или NSURLConnection.
И еще один способ использования libcurl, который поставляется с предустановленной системой любой OS X. Вы должны убедиться, что системные настройки, такие как прокси и т. Д., Соблюдаются, хотя, если вы используете этот подход.
NSURLConnection хорошо, если вы хотите получить данные из веб-службы в NSString или NSData. Убедитесь, что вы делаете асинхронные вызовы и обработки ошибок и данные в методах NSURLConnection
Вот хороший пример для REST-стиля называет http://kosmaczewski.net/2008/03/26/playing-with-http-libraries/
NSURLConnection дает вам большую детализацию, но будьте осторожны с sendSynchronousRequest NSURLConnection (в) метод. It leaks memory each time (приложите инструмент XCode Leak Instrumentation и запустите его, чтобы доказать это самому себе) и дает странные ответы HTTP 204 без всякой причины. I've blogged about this here
- 1. osx Доступ к какао appleSMC из изолированного приложения
- 2. Доступ к какао из Ruby с FFI?
- 3. Признание структуры QC из приложения какао
- 4. Доступ к странице из приложения?
- 5. Доступ к iPhone из приложения?
- 6. Управление iTunes из приложения какао
- 7. запустить WPS из приложения какао
- 8. Запуск Applescript из приложения какао
- 9. не может получить доступ к этикетке в какао - основное какао
- 10. Эффективный доступ к многочисленным элементам управления какао
- 11. Доступ к окну по умолчанию Цвет Какао
- 12. Какао - изменение настройки приведет к изменению приложения?
- 13. Какао - Создание персонализированных приложения
- 14. Доступ к базе данных SQL из приложения Cocoa
- 15. Доступ к данным приложения
- 16. Какао WebView доступ кросс-нить
- 17. Доступ к моделям ActiveRecord из приложения MongoDB
- 18. Доступ к реестру из веб-приложения
- 19. доступ к базе данных из приложения
- 20. Доступ к переменным приложения из плагина Rails
- 21. DTrace доступ к глобальным переменным из приложения
- 22. Доступ к реестру из .net-приложения
- 23. Доступ к файлам из приложения Windows Store
- 24. Доступ к ресурсам из опубликованного приложения
- 25. Доступ к пакетам OSGI из Android-приложения
- 26. Доступ к основным данным приложения из XCTest
- 27. Доступ к источнику данных из автономного приложения
- 28. Доступ к оболочке mongo из приложения
- 29. Доступ к моему контексту приложения из QuartzJob
- 30. Доступ к данным из другого приложения