在模型中创建枚举

时间:2021-03-04 08:24:59

标签: swift enums

我想为这样的订单状态创建一个枚举

struct Order: Identifiable, Hashable {
var id: Int {
    return elementID
}
var elementID: Int
var orderNumber: String
enum Status: String {
    case complete = "Completed"
    case transit = "In Transit"
    case prepare = "Prepairing"
}
var date: String

func toString(forStatus status: Status) -> String {
    return status.rawValue
}

}

然后我想像这样在OrderList中创建一个订单

struct OrderList {
static let listData: [Order] = [
    Order(elementID: 0, orderNumber: "123123123123", date: "15.08.2020", status: .transit)
]

}

或者像这样

struct OrderList {
    static let listData: [Order] = [
        Order(elementID: 0, orderNumber: "123123123123", date: "15.08.2020").toString(forStatus: .complete))
    ]
}

但是我可以在 OrderList 中访问 status。如何在 Order to Status 中设置值?

1 个答案:

答案 0 :(得分:1)

您忘记将 status 属性添加到 Order

var status: Status

如果您要嵌套 Status(您应该这样做!),那么您也应该嵌套 List

extension Order {
  struct List {
    static let data = [
      Order(elementID: 0, orderNumber: "123123123123", date: "15.08.2020", status: .transit)
    ]
  }
}