确定关联枚举中的枚举

时间:2015-09-27 19:14:46

标签: ios swift enums

我已经创建了一个关联的枚举,但是我似乎无法弄清楚如何创建一个if else语句,这决定了哪个。它似乎不起作用,我正在做什么。我究竟做错了什么?或者是不可能使用相关的枚举。

enum Type {
    case Cat(name: String, outDoor: Bool)
    case Dog(name: String, activityLevel: Int)
}

class Person {
    var type: Type?
}

功能

func checkType(object: Person) {
    if object.type == .Cat {
    }
}

1 个答案:

答案 0 :(得分:1)

您必须使用switch语句,除非您使用的Swift 2.0具有新的if case语句用于此目的。

enum Type {
    case Cat(name: String, outDoor: Bool)
    case Dog(name: String, activityLevel: Int)
}
class Person {
    var type: Type?
}
func checkType(obj:Person) {
    if let type = obj.type {
        if case .Cat(name:let n, outDoor:let o) = type {
            print(n)
            print(o)
        }
    }
}