我如何获取包含 swift 和保管箱 API 的文本文件内容
How do i get a text files content with swift and the dropbox API
我正在尝试从我的 Dropbox 帐户下载一个常规的 .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!)
}
除了关于文件的一堆信息之外什么也没有给我,但不是它的内容。
它打印文件大小的原因是您的 data
变量是 Data
类型。要打印实际内容,您必须先将其转换为 String
:
if let fileContents = String(data: data, encoding: .utf8) {
print("Downloaded file data: \(fileContents)")
}
Swift 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 ...
我正在尝试从我的 Dropbox 帐户下载一个常规的 .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!)
}
除了关于文件的一堆信息之外什么也没有给我,但不是它的内容。
它打印文件大小的原因是您的 data
变量是 Data
类型。要打印实际内容,您必须先将其转换为 String
:
if let fileContents = String(data: data, encoding: .utf8) {
print("Downloaded file data: \(fileContents)")
}
Swift 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 ...