初始化程序 'init(_:)' 要求 'OneCall.HourlyResponse' 符合 'StringProtocol'

Initializer 'init(_:)' requires that 'OneCall.HourlyResponse' conform to 'StringProtocol'

我有一个使用 OneCall API 1.0 的 iOS SwiftUI OpenWeatherMap 应用程序。我收到一个错误 Initializer 'init(_:)' requires that 'OneCall.HourlyResponse' conform to 'StringProtocol'。 这是我的代码,可能与错误有关:

主 WeatherView 文件:

ScrollView(.horizontal){
    HStack(spacing: 5.0) {
        ForEach(0..<25) {_ in
            VStack{
                Text(weather.hourly) //Line with error
                    .bold()
                    .font(.subheadline)
                    .frame(width: 105, height: 15)
            }
        }
    }
}

响应正文:

struct OneCall: Decodable{
    let lat, lon: Double
    let timezone : String
    let timezone_offset : Int
    let current: CurrentResponse
    let hourly: HourlyResponse

    struct HourlyResponse: Decodable{
        var hourly = ""
    }
}

在 OneCall 结构中,我还有很多内部结构,但我只包含了 HourlyResponse 结构。

不胜感激。

您的 weather 实例的类型为 OneCall

当你使用weather.hourly时,它是OneCall.HourlyResponse类型,显然不符合StringProtocol

weather.hourly.hourly 是您需要使用的字符串 属性。