难以理解 API 结构

Posted

技术标签:

【中文标题】难以理解 API 结构【英文标题】:Difficulty understanding API structure 【发布时间】:2021-10-10 08:00:12 【问题描述】:

我正在从事一个从 API 提取数据的项目。我了解之前调用的 API 结构,但这个有点不同,给我带来了麻烦。

以下是 API 调用结果的示例: [1]:https://i.stack.imgur.com/V0wVh.png

我看到它返回一个步骤数组,每个步骤都有额外的数据。所以这就是我构建结构的方式:

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

任何提示/想法将不胜感激 - 我很难过。谢谢!

编辑:澄清最后一段。

【问题讨论】:

let stepContents = result.steps.[indexPath.row] 代替?如果resultInstructions,目前还不清楚它是什么...... @Larme 抱歉——结果被初始化为... var result: [Instructions] = [] 能否贴出实际的json,不是图片,不清楚step是什么 【参考方案1】:

您的 Step 结构在等待后不正确

让图片:字符串

但是在您通过屏幕截图提供的服务器响应中,您没有此字段。 由于您将其添加为非可选,因此解码器无法对其进行解码。

尝试为图像设置可选类型,例如:

var 图像:字符串?

如果不需要则删除

【讨论】:

以上是关于难以理解 API 结构的主要内容,如果未能解决你的问题,请参考以下文章

难以理解表达式 (*(&x->y))

m2e 给出了难以理解的“项目读取错误”

为啥 Google 的 TrueTime API 难以复制?

DELPHI二维数组设置长度的时候出现了难以理解的问题!急求高人指教!

http request:消息结构

对软件测试的理解