Swift 在模型内创建枚举

Swift 在模型内创建枚举,swift,enums,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" ca

我想为订单状态创建一个枚举,如下所示

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
}
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))
    ]
}
}

然后我想在订单列表中创建一个订单,如下所示

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
}
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))
    ]
}
}

还是像这样

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
}
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))
    ]
}

但我可以在订单列表中找到状态。如何将值设置为状态?

您忘记将状态属性添加到
顺序中

var状态:状态
如果您要嵌套
状态
(您应该这么做!),那么您也应该嵌套
列表

延期订单{
结构列表{
静态let数据=[
订单(elementID:0,订单号:“123123”,日期:“2020年8月15日”,状态:。运输)
]
}
}

如果我理解正确,您需要在
顺序中声明
状态
属性
var status:status
。看起来您所需要的只是@Sweeper建议的内容。只需声明一个变量来保存订单状态的值。在上一个示例中,您不是在初始化订单,而是在创建字符串数组,因为
toString(forStatus状态:status)->String
函数返回
String
not
Order