这是来自调试。
url String "https://openweathermap.org/img/w/Optional(\50n\).png"
问题出在这一行:
self.imgURL = "https://openweathermap.org/img/w/\(self.dodatek).png"
当我将(self.dodatek)更改为例如图标50n时,它会工作并向我显示图标。 当我启动我的天气应用程序并写下我希望有这样的城市名称,但对于50n,它必须是我从json获取的变量。
https://openweathermap.org/img/w/50n.png
答案 0 :(得分:0)
对于您的问题,快速而肮脏的修补程序似乎正在展开可选的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?
,请将其声明为
guard let
代替。
如果它可以是nil,则应使用上面的<SomeControl MouseDown="MyMouseHandler">
...
</SomeControl>
语句来定义应该使用的URL的回退值(如可能是通用天气图标的URL)