NSURLSession: загрузка ресурсов с фоновой передачей
Какие'лучший способ использовать фоновую передачу для загрузки активов из галереи?
Похоже наuploadTaskWithRequest:fromData:
Безразлично»работать сNSURLSession
создан сbackgroundSessionConfiguration
поскольку это вызывает исключение:Завершение приложения из-за неисследованного исключения »NSGenericException»Причина:Загружать задачи в фоновые сеансы нужно из файла », Судя по описанию исключения фоновой передачи не следуетработать с потоковыми задачами загрузки тоже.
Справедливо.uploadTaskWithRequest:fromFile:
это первое, что приходит на ум, когда вы думаете о загрузке данных, которые у вас уже есть на диске. Но NSURLSession Class Reference говорит нам, что этот метод работает только с URL-адресами файлов, но когда вы получаете актив 'S URL путь начинается с "активы-библиотека: // актив / ...» и обеспечение этого пути нетоже не работает.
Таким образом, кажется, что единственный оставшийся вариант - скопировать файл из библиотеки ресурсов во временный каталог и предоставить его URL-адрес файлаuploadTaskWithRequest:fromFile:
, Но это неЭто не имеет никакого смысла, потому что у вас уже есть файл активов, сохраненный на вашем диске. Я что-то пропустил?
Обновить:
Поговорил с инженером Apple на мероприятии Tech Talks, и он подтвердил, что фон NSURLSession поддерживает только URL-адреса файлов. Таким образом, вам действительно нужно скопировать библиотеку ресурсов во временный каталог и предоставить ее URL-адрес файлаuploadTaskWithRequest:fromFile:
загрузить его с фоном NSURLSession. Это поведение может измениться в будущем, хотя.