NSURLSession: загрузка ресурсов с фоновой передачей

Как лучше всего использовать фоновую передачу для загрузки ресурсов из галереи?

Похоже наuploadTaskWithRequest:fromData: не работает сNSURLSession создан сbackgroundSessionConfiguration поскольку это вызывает исключение: «Завершение приложения из-за необработанного исключения« NSGenericException », причина:« Задачи загрузки в фоновых сеансах должны быть из файла ». Судя по описанию исключения, фоновая передача не должна работать и с потоковыми задачами загрузки.

Справедливо.uploadTaskWithRequest:fromFile: это первое, что приходит на ум, когда вы думаете о загрузке данных, которые у вас уже есть на диске. Но NSURLSession Class Reference говорит нам, что этот метод работает только с URL-адресами файлов, но когда вы получаете URL-адрес ресурса, он начинается с "assets-library: // asset / ..." и предоставление этого пути тоже не работает.

Таким образом, кажется, что единственный оставшийся вариант - скопировать файл из библиотеки ресурсов во временный каталог и предоставить его URL-адрес файлаuploadTaskWithRequest:fromFile:, Но это не имеет никакого смысла, потому что у вас уже есть файл активов, сохраненный на вашем диске. Я что-то пропустил?

Обновить:

Поговорил с инженером Apple на мероприятии Tech Talks, и он подтвердил, что фон NSURLSession поддерживает только URL-адреса файлов. Таким образом, вам действительно нужно скопировать библиотеку ресурсов во временный каталог и предоставить ее URL-адрес файлаuploadTaskWithRequest:fromFile: загрузить его с фоном NSURLSession. Это поведение может измениться в будущем, хотя.

Ответы на вопрос(1)

Ваш ответ на вопрос