初始化程序 '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
是您需要使用的字符串 属性。
我有一个使用 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
是您需要使用的字符串 属性。