0

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

所以程序是这样的:

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

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

    任务.resume()

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

    让 xmlData = NSData(contentsOf: location.absoluteURL)

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

Xcode 输出

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

任何提示、帮助或建议将不胜感激。

问候

4

2 回答 2

0

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

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

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


将其放入会话的任务完成块中 - 不要尝试与会话的代表一起去。

于 2017-02-11T07:34:31.990 回答
0

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

class del : NSObject, URLSessionDownloadDelegate {
    func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
        let result = try? String(contentsOf: location)
        if let result = result {
            print (result)
        }
    }
}
于 2017-02-11T07:21:34.113 回答