【问题标题】:Expected type after asas 之后的预期类型
【发布时间】:2016-11-10 21:48:00
【问题描述】:

我正在开发一个应用程序,它使用谷歌位置搜索小部件来填充用户出生的位置,但我遇到了您可以在下面看到的问题:

private class func doRequest(_ urlString: String, params: [String: String], success: (NSDictionary) -> ()) {
    if let url = URL(string: "\(urlString)?\(query(params))") {
        let request = NSMutableURLRequest(url: url)
        let session = URLSession.shared()
        let task = session.dataTask(with: request) { data, response, error in
            self.handleResponse(data, response: response as?, error: error, success: success)
        }
                    
        task.resume()
    }
}
            

【问题讨论】:

  • 错误信息很清楚:response as? 什么?

标签: ios swift swift3


【解决方案1】:

as? 用于将一种类型转换为另一种类型,您要求 Xcode 将response 转换为另一种类型,但没有告诉它要转换为什么。

正如错误所说,它期望在关键字 as 之后看到一个类型

【讨论】:

  • handleResponse 需要 4 个参数。返回的数据、响应、处理错误情况的回调和成功情况的回调。您已尝试将响应对象转换为 handleResponse 期望的类型,但未提供任何类型。答案是删除as?,因为您不需要强制转换,或者在关键字as? 之后添加handleResponse 所期望的类型。我无法告诉你答案,因为我无权访问代码。
  • 感谢您的回复。不知怎的,我找到了答案。实际上,将 swift 2.3 升级到 swift 3 时代码出错了。:)
猜你喜欢
  • 2023-04-04
  • 2016-12-28
  • 2015-11-05
  • 2017-09-28
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多