类型'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.

Pic of error

enter image description here

解决方法

let podcast = try! JSONDecoder().decode(PodPost.self,from: data!)

将为您提供一个PodEpisode对象,其属性为程序

现在,在完成代码块中,您尝试调用 podcast.programs.episode ,因为该数组不能作为数组

如果您需要一集,则需要执行类似的操作

let Episode = podcast.programs.first!.episode