【发布时间】:2020-09-17 19:18:40
【问题描述】:
我不知道如何在 Swift 中下载 Google Drive 文件。我按照Google Objective-C API 'GTL' with Swift 的修改后的快速入门进行操作,并且成功了。我无法在下载文件时从谷歌驱动 API 翻译目标 C 代码。我四处寻找,找不到任何东西。我怎样才能让它工作?
【问题讨论】:
我不知道如何在 Swift 中下载 Google Drive 文件。我按照Google Objective-C API 'GTL' with Swift 的修改后的快速入门进行操作,并且成功了。我无法在下载文件时从谷歌驱动 API 翻译目标 C 代码。我四处寻找,找不到任何东西。我怎样才能让它工作?
【问题讨论】:
您可以使用此功能在 Swift 中通过 Google Drive API 下载文件:
func downloadFile(file: GTLDriveFile){
let url = "https://www.googleapis.com/drive/v3/files/\(file.identifier!)?alt=media"
let fetcher = drive.fetcherService.fetcherWithURLString(url)
fetcher.beginFetchWithDelegate(
self,
didFinishSelector: #selector(ViewController.finishedFileDownload(_:finishedWithData:error:)))
}
(在这种情况下,drive 是 GTLServiceDrive - 与 Documentation 相同)
然后你需要实现函数finishedFileDownload,一旦下载完成就会被调用:
func finishedFileDownload(fetcher: GTMSessionFetcher, finishedWithData data: NSData, error: NSError?){
if let error = error {
//show an alert with the error message or something similar
return
}
//do something with data (save it...)
}
【讨论】:
update 请求。
Swift 5 的实际情况。
func download(file: GTLRDrive_File) {
let url = "https://www.googleapis.com/drive/v3/files/\(file.identifier!)?alt=media"
let fetcher = drive.fetcherService.fetcher(withURLString: url)
fetcher.beginFetch(completionHandler: { data, error in
if let error = error {
print(error.localizedDescription)
}
//Do something with data
})
}
【讨论】: