Swift: Initializer 'init(_:rowContent:)' 要求 'HealthStat' 符合 'Identifiable'

Swift: Initializer 'init(_:rowContent:)' requires that 'HealthStat' conform to 'Identifiable'

我收到来自 Xcode 的错误,我的列表:

List(viewModel.stats) { stat in
            VStack(alignment: .leading) {
            Text(viewModel.value(from: stat.stat).desc)
            Text(stat.date, style: .date).opacity(0.5)
        }

不符合可识别:

Initializer 'init(_:rowContent:)' requires that 'HealthStat' conform to 'Identifiable'

我查看了我的 HealthStat 文件

import Foundation
import HealthKit


struct HealthStat {
    let id = UUID()
    let stat: HKQuantity?
    let date: Date
}

我已经声明了统计数据,所以我不确定为什么它会显示给我。我是 Swift 的新手,所以这可能是我忽略的地方。

如有任何帮助,我们将不胜感激!

改变

struct HealthStat

struct HealthStat: Identifiable 

协议的采用并不是因为类型恰好符合协议要求而隐式累积的某种偶然质量。这都是关于类型的显式声明。如果你不你的类型采用协议,它不会。