首页 > 解决方案 > 在模型中创建枚举

问题描述

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

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 中的状态。如何将 Order 中的值设置为 Status?

标签: swiftenums

解决方案


您忘记将您的状态属性添加到Order.

var status: Status

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

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

推荐阅读