如何将下载的文件加载到NSData变量中

时间:2017-02-11 06:35:45

标签: ios swift urlsession

对于我的应用程序,我从Internet下载包含XML的文件,必须进行解析。 我遇到的问题是:一旦下载文件,我尝试将其内容加载到NSData变量中,这样我就可以调用解析函数,但是我没有得到预期的结果。

所以程序是这样的:

  1. 我使用URLSession下载文件(这是正确的,因为我已手动打开文件并验证其内容是否有效)

    let task = downloadsSession.downloadTask(with:lobj_Request as URLRequest)

    task.resume()

  2. 委托方法didFinishDownloadingToURL被触发,我用它来尝试将文件内容加载到NSData变量中

    让xmlData = NSData(contentsOf:location.absoluteURL)

  3. 我打印xmlData的内容,而不是获取xml,我得到这样的内容:

  4. Xcode output

    所以我不知道我做错了什么。

    任何提示,帮助或建议都将受到赞赏。

    此致

2 个答案:

答案 0 :(得分:0)

是否有理由使用NSData?我建议直接使用字符串:

onActivityResult()

答案 1 :(得分:0)

您会看到NSData的原始字节 - 您希望看到原始字节所代表的“已解码字符串内容”。

所以xmlData可能是一串数字,每个都是一个字节:
 7402874 243721 2342111 2342342 234234

表示的字符串由表示的字符组合而成:
 let xmlString = String(WithData:xmlData, encoding:NSUTF8StringEncoding)

将其添加到会话的任务完成块中 - 不要尝试使用会话的代表。