-1

我正在尝试从我已与令牌链接的保管箱帐户下载常规 .txt 文件,但我不知道如何获取内容。我唯一能找到的是:

            // Download a file
            client.filesDownload(path: "/hello.txt").response { response, error in
                if let (metadata, data) = response {
                    println("Dowloaded file name: \(metadata.name)")
                    println("Downloaded file data: \(data)")
                } else {
                    println(error!)
                }

这给了我一堆关于文件的信息,但不是它的内容。

4

1 回答 1

2

它打印文件大小的原因是您的data变量是Data. 要打印实际内容,您必须将其转换为String第一个:

if let fileContents = String(data: data, encoding: .utf8) {
    print("Downloaded file data: \(fileContents)")
}

斯威夫特 1

根据您使用的 println,您可能使用的是旧版本的 Swift。在这种情况下,代码应如下所示:

if let fileContents = NSString(data: data, encoding: NSUTF8StringEncoding) {
    println("Downloaded file data: \(fileContents)")
}

Data类型的好处是您可以直接转换它,例如 JSON:

guard let json = try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
    return
}
//... do something with json ...
于 2017-11-06T07:04:46.643 回答