如何解决类型'PodPost'的值没有成员'episode'
也不知道为什么投票否定
因此以下代码说它没有正确的情节成员,因为JSON首先传递给了PodEpisode
。然后需要将其传递到最后一个子数组
struct PodPost: Codable {
var programs: [PodEpisode]
}
struct PodEpisode: Codable {
var episode : [PodProgram]
}
struct PodProgram: Codable,Identifiable {
let id = UUID()
var title : String
var enclosureurl : String
var summary : String
}
我通过以下方式致电
func getPodcast(podurl:String,completion: @escaping ([PodProgram]) -> ()) {
let podurl = podurl
guard let url = URL(string: "https://api.drn1.com.au/api-access/programs/\(podurl)") else { return }
URLSession.shared.dataTask(with: url) { (data,_,_) in
// Based on the updated structs,you would no
// longer be decoding an array
let podcast = try! JSONDecoder().decode(PodPost.self,from: data!)
DispatchQueue.main.async{
// The array is stored under programs now
completion(podcast.episode). // THIS IS THE LINE THAT ERROR SHOWS (Value of type 'PodPost' has no member 'episode' )
}
}
}
我尝试了以下
添加一个
let episode = podcast.programs
then using that to call episode.episode // With no success.
解决方法
let podcast = try! JSONDecoder().decode(PodPost.self,from: data!)
将为您提供一个PodEpisode对象,其属性为程序
现在,在完成代码块中,您尝试调用 podcast.programs.episode ,因为该数组不能作为数组
如果您需要一集,则需要执行类似的操作
let Episode = podcast.programs.first!.episode
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。