SwiftData 枚举在调用实例方法“setValue”时没有完全匹配错误

问题描述 投票:0回答:1

对于具有枚举作为值的属性,我收到“调用实例方法“setValue”时没有完全匹配”错误。我该如何解决?任何帮助都会得到帮助。

enter image description here

enum FluidUnit: CaseIterable, Identifiable {
  case ounce, liter
  var id: Self { self }

  var title: String {
    switch self {
    case .ounce:
      return "ounce"
    case .liter:
      return "liters"
    }
  }
}

@Model
class Drink: Identifiable, Hashable {

  let id: UUID = UUID()
  let name: String = ""
  var shortName: String = ""
  var amount: Double = 0.0
  let unitOfMeasure: FluidUnit = FluidUnit.ounce
  let date: Date = Date()
  var image: String = "water"
  var favorite: Bool = false

  init(name: String, amount: Double, unitOfMeasure: FluidUnit, image: String, favorite: Bool = false, shortName: String = "") {
    self.id = UUID()
    self.name = name
    self.amount = amount
    self.unitOfMeasure = unitOfMeasure
    self.date = Date()
    self.image = image
    self.favorite = favorite
    self.shortName = shortName
  }

  static func == (lhs: Drink, rhs: Drink) -> Bool {
    lhs.id == rhs.id
  }

  func hash(into hasher: inout Hasher) {
      hasher.combine(id)
  }
}
swift swift-data
1个回答
0
投票

我想通了。我需要 FluidUnit 来符合 Codable。我还需要清理构建文件夹,错误就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.