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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...