Struct没有看到它的内容?

时间:2019-01-13 23:40:50

标签: swift struct

所以我正在尝试获取数据,

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的错误。有什么想法吗?

1 个答案:

答案 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指向正确的方向,希望他能从那里取得进步。请不要立即破坏答案