Json 类型'_';没有成员';id';迅捷

Json 类型'_';没有成员';id';迅捷,json,swift,struct,swiftui,Json,Swift,Struct,Swiftui,所以在过去的几个小时里,我一直在尝试创建一个水平卡片堆栈,它将显示我正在从事的一个项目的最新标题。我现在所在的位置阻碍了我的整个流程,因为我的列表在我的结果结构中找不到我的id变量。下面我附上了代码,任何帮助都将不胜感激 如注释中所述,Result是Swift中的一种类型,因此您必须使用不同的名称 我选择了: struct MyResult: Codable { var id: Int var title: String var header_image: String

所以在过去的几个小时里,我一直在尝试创建一个水平卡片堆栈,它将显示我正在从事的一个项目的最新标题。我现在所在的位置阻碍了我的整个流程,因为我的列表在我的结果结构中找不到我的id变量。下面我附上了代码,任何帮助都将不胜感激


如注释中所述,
Result
Swift
中的一种类型,因此您必须使用不同的名称

我选择了:

struct MyResult: Codable {
    var id: Int
    var title: String
    var header_image: String
    var summary: String
}
由于它有一个
id
,您可以使它
可识别

extension MyResult: Identifiable {}
至于机构:

var body: some View {
    ScrollView(.horizontal) {
        HStack(spacing: 20) {
            ForEach(results) { result in
                Text(result.title)
            }
            .onAppear(perform: { self.loadData() })
        }
    }
}

您需要一个
ForEach
,然后是一个
列表
,构建器不能为空。另外,
onAppear
将闭包作为其参数。完成所有更改后,
视图将按预期运行。

请不要包含代码的屏幕截图,而是将其粘贴到问题正文中。谢谢你得到了两者,这样你就可以看到相关的错误。我不建议使用
Result
作为类型的名称。它不仅过于笼统,无法进行描述性描述(字面上任何东西都可以称为结果:数字、字符串、表格),而且还与Swift标准库中内置的
result
类型冲突。我认为这就是问题的原因。按照您的想法,我用文章更改了结果,但仍然得到相同的错误。@TheAlexVO如果您显式指定
\Article.id
,会发生什么情况?非常感谢,我一辈子都无法解决这个问题。@TheAlexVO为您辩护,这里的编译器错误非常糟糕。问题的很大一部分是,对于空的列表体,传递给
list
的闭包的返回类型是未指定的,这会导致编译器难以解释的所有类型错误指南。
var body: some View {
    ScrollView(.horizontal) {
        HStack(spacing: 20) {
            ForEach(results) { result in
                Text(result.title)
            }
            .onAppear(perform: { self.loadData() })
        }
    }
}