如何在Swift中检查带有关联值的枚举的枚举大小写

如何在Swift中检查带有关联值的枚举的枚举大小写,swift,enums,Swift,Enums,我试图检查一个枚举的案例,该枚举的每个案例都有关联的值,如下所示: enum status { case awake(obj1) case sleeping(obj2) case walking(obj3) case running(obj4) } 我正在使用if(status==deviceStatus.awake){检查状态大小写,得到一个错误:二进制运算符'=='不能应用于'status'和'(obj1)类型的操作数->status'您可以使用如果case

我试图检查一个枚举的案例,该枚举的每个案例都有关联的值,如下所示:

enum status {
    case awake(obj1)
    case sleeping(obj2)
    case walking(obj3)
    case running(obj4)
}

我正在使用
if(status==deviceStatus.awake){
检查状态大小写,得到一个错误:
二进制运算符'=='不能应用于'status'和'(obj1)类型的操作数->status'

您可以使用
如果case.awake=deviceStatus
检查
deviceStatus
是否设置为
awake
枚举值:

class Obj1 { }
class Obj2 { }
class Obj3 { }
class Obj4 { }

enum Status {
    case awake(Obj1)
    case sleeping(Obj2)
    case walking(Obj3)
    case running(Obj4)
}

let deviceStatus = Status.awake(Obj1())

if case .awake = deviceStatus {
    print("awake")
} else if case .sleeping = deviceStatus {
    print("sleeping")
}

// you can also use a switch statement

switch deviceStatus {
case .awake:
    print("awake")
case .sleeping:
    print("sleeping")
default:
    print("something else")
}

您在哪里定义了deviceStatus?这些对象(obj1、obj2等)的类型是什么?这些对象可能重复