для моего приложения, я загружаю файл из Интернета, который содержит XML и должен быть проанализирован. Проблема, с которой я столкнулся, заключается в следующем: после загрузки файла я пытаюсь загрузить его содержимое в переменную NSData, чтобы я мог вызвать функцию синтаксического анализа, но я не получаю ожидаемого результата.Как загрузить загруженный файл в переменную NSData
Так процедура выглядит следующим образом:
загрузить файл с помощью URLSession (это правильно, потому что я открыл файл вручную и проверить его содержание является действительным)
Пусть задача = downloadsSession .downloadTask (с: lobj_Request как URLRequest)
task.resume()
метод делегат didFinishD ownloadingToURL срабатывает и я использую его, чтобы попытаться загрузки содержимого файла в переменную NSData
пусть XMLDATA = NSData (contentsOf: location.absoluteURL)
распечатать содержимое XMLDATA и вместо того, получение XML я получаю что-то вроде этого:
Так что я не знаю, что я делаю неправильно.
Подсказка, помощь или совет будут оценены.
С уважением
В конце концов, это может привести к загрузке URL дважды;) вы уже загрузили данные. И если он не был кэширован, делегат мог заблокировать длительное время из-за синхронного вызова в «contentOf: location» –
@Daij: Нет, проверьте документацию: 'location' - это локальный временный файл. Тем не менее, вы правы, когда выполняете «настоящую» работу в дополнительном проходе, снова смотрите документ: «Если вы решите открыть файл для чтения, вы должны сделать фактическое чтение в другом потоке, чтобы избежать блокировки очереди делегатов». –
Извините. Заблокированное голосование –