所以我正在尝试获取数据,
struct Location: Decodable {
var elevation = String()
var id = String()
var latitude = String()
var longitude = String()
var name = String()
var region = String()
var unitaryAuthArea = String()
}
struct Locations: Decodable {
var Location :[Location]
}
struct Weather: Decodable{
var Locations :[Locations]
}
但是,出于某些原因,当我使用此行时,在其中
let withoutElevation = weather.Locations.Location.filter {$0.elevation == nil}
我无法收到LOCATIONS没有LOCATION的错误。有什么想法吗?
答案 0 :(得分:0)
通过检查此“链”每个阶段的作用类型,可以更好地理解这一点。
let withoutElevation = weather // Weather
.Locations // [Locations]
.Location // doesn't exist, but Location was intended
.filter {$0.elevation == nil} // invalid, but [Location] was intended
这时,错误变得很明显。 weather.Locations
是一个[Locations]
,没有Location
成员。您真正想要的是使所有Location
都位于Locations
结构中。
知道了这一点,再尝试一下,看看还能得到多少。让我知道您是否还有其他疑问
其他注意事项: 这是一个很好的学习机会。我试图将OP指向正确的方向,希望他能从那里取得进步。请不要立即破坏答案