我正在做一个项目,我正在从API中提取数据。对于之前的调用,我理解了API的结构,但是这个有点不同,给我带来了麻烦。
下面是一个API调用结果的示例:[1]: https://i.stack.imgur.com/V0wVh.png我看到它返回一个步骤数组,每个步骤都有额外的数据。下面是我构建struct的方法:
struct Instructions: Codable {
let steps: [Step]
}
struct Step: Codable {
let number: Int // step number
let step: String // step explanation
let ingredients: [Ingredient] // ingredients used in this step
let image: String
}
如果这些结构正确,那么我想我的问题是我如何访问struct Step
的数据?我想这样做:
我初始化这个:var result: [Instructions] = []
,然后在UITableVieDataSource的cellForRowAt函数中,我做:let stepContents = result[indexPath.row].steps
。这显然不起作用,但我试图将stepContents设置为Step中的step: String
。
任何提示/想法将非常感激-我被难住了。谢谢你!
编辑:澄清最后一段。
您的Step结构不正确,因为等待
let image: String
但是在您通过屏幕截图提供的服务器响应中,您没有此字段。由于您将其添加为非可选的,因此解码器无法解码它。
尝试为图像设置一个可选的类型,如:
var image: String?
或删除,如果不需要