“GTLDriveFile”类型的值没有成员“downloadUrl”

2024-05-08

我正在关注这个tutorial https://developers.google.com/drive/ios/devguide/files我正在尝试用 Swift 来做这件事。

The file对象没有downloadUrl财产,我不明白为什么。我检查了API https://developers.google.com/drive/ios/reference/ios-client/interface_g_t_l_drive_file它说这个属性存在,至少对于 Objective-C 来说是这样。但 Swift 存在所有其他属性,所以为什么不呢downloadUrl?

我做了一件简单的事情,比如:

let file: GTLDriveFile!
file.downloadUrl

and downloadUrl出现红色下划线并出现错误:Value of type 'GTLDriveFile' has no member 'downloadUrl'.

这是我的代码:

private let service = GTLServiceDrive()

// Parse results and display
func displayResultWithTicket(ticket : GTLServiceTicket,
    finishedWithObject response : GTLDriveFileList,
    error : NSError?) {

        if let error = error {
            showAlert("Error", message: error.localizedDescription)
            return
        }

        var filesString = ""

        if let files = response.files where !files.isEmpty {
            filesString += "Files:\n"

            for file in files as! [GTLDriveFile] {
                var fetcher: GTMSessionFetcher = service.fetcherService.fetcherWithURL(file.downloadUrl)
                filesString += "\(file.name)\n"
            }
        } else {
            filesString = "No files found."
        }

        output.text = filesString
}

我最终做的是自己生成下载 URL,如下所示:

let url = "https://www.googleapis.com/drive/v2/files/" + file.identifier + "?alt=media"
let fetcher = service.fetcherService.fetcherWithURLString(url)
fetcher.beginFetchWithCompletionHandler({ (data, error) -> Void in
    if error == nil {
        print(data)
    } else {
        print("An error occurred: " + error!.localizedDescription)
    }
})

另一种选择是不使用“?alt=media”进行调用,并从元数据 json 中提取 downloadUrl

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“GTLDriveFile”类型的值没有成员“downloadUrl” 的相关文章

随机推荐