【问题标题】:Error when getting image from weather api. iOS从天气 api 获取图像时出错。 iOS
【发布时间】:2017-06-14 23:41:58
【问题描述】:

这是来自调试。

url String  "https://openweathermap.org/img/w/Optional(\50n\).png"  

问题出在这一行:

 self.imgURL = "https://openweathermap.org/img/w/\(self.dodatek).png"

当我将 (self.dodatek) 例如更改为图标 50n 时,它可以工作并显示图标。 当我启动我的天气应用程序并写下城市名称时,我想要这样的 url,但对于 50n,它必须是我从 json 中获取的变量。

https://openweathermap.org/img/w/50n.png

【问题讨论】:

  • let urlRequest = URLRequest(url: URL(string: url)!) 之外的所有代码都与确定问题无关。字符串url 的值是多少?使用调试器!
  • 最常见的问题是字符串为空或 URL 格式无效
  • 我更新了问题。

标签: ios json swift weather-api


【解决方案1】:

看起来解决问题的快速而肮脏的方法是像这样解开可选的dodatek(可能是String?

 self.imgURL = "https://openweathermap.org/img/w/\(self.dodatek!).png"

更清洁的解决方案绝对是

guard let dodatek = self.dodatek else {
    // handle that dodatek is nil
    // or just return
    return
}
 self.imgURL = "https://openweathermap.org/img/w/\(dodatek).png"

说明

问题是你的财产dodatek理论上可以是nil当你声明它为String? 如果您确定它永远不会是nil,请将其声明为

var dodatek: String // not String?

相反。 如果它可以为 nil,则应该使用上面的 guard let 语句来定义应该使用的 url 的后备值(比如通用天气图标的 url)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 2013-07-06
    • 2022-12-18
    • 2021-11-09
    • 2012-08-21
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多