如何使我的结构可识别?它有一个唯一的数字 uid 字段

How to make my struct Identifiable? It has a unique numeric uid field

a simple project at Github 中,我正在尝试下载 JSON 个对象的列表:

struct TopResponse: Codable {
    let data: [Top]
}

struct Top: Codable /*, Identifiable */ {
    let uid: Int
    let elo: Int
    let given: String
    let photo: String?
    let motto: String?
    let avg_score: Double?
    let avg_time: String?
}

这很好用,下一步我想在 SwiftUI 列表中显示它,然后将 Identifiable 添加到结构中。

不幸的是,这会产生编译错误 Type 'Top' does not conform to protocol 'Identifiable':

根据我的后端应用程序的设计,字段 uid 是唯一编号。

所以我试图通过将其类型从 Int 更改为 ObjectIdentifier 来修复编译错误,但是 Swift 编译器仍然对新错误 [=16] 不满意=]

这是怎么回事,编译器现在可能缺少用于解码 JSON 的 uid 字段吗? (它怎么可能知道传入的服务器数据有这样一个字段?)

Identifiable 要求您的结构具有 id 属性,它不会自动找到最适合的结构。

如果您想使用 uid 作为 id 属性,请按如下方式实现:

var id: Int { uid }