Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用guard或Swift中的if case从枚举中提取值_Swift - Fatal编程技术网

使用guard或Swift中的if case从枚举中提取值

使用guard或Swift中的if case从枚举中提取值,swift,Swift,我已经列举了一些案例: case one(value: myClassOne) case two(value: myClassTwo) 我想检查该枚举的值。现在我以: switch self.model! { case .one: // Great, my case here default: break } 但我想做一些类似的事情: if case self.model(let value) is myClassOne { // do smth } // Not compi

我已经列举了一些案例:

case one(value: myClassOne)
case two(value: myClassTwo)
我想检查该枚举的值。现在我以:

switch self.model! {
case .one:
    // Great, my case here
default:
    break
}
但我想做一些类似的事情:

if case self.model(let value) is myClassOne { // do smth } // Not compiling

有没有简单的方法来提取枚举值并检查它的某些条件或类相等性?

这是正确的语法:

if case .one(value: let value) = self.model {
    // do something with `value`
}

guard case .one(value: let value) = self.model else {
    //handle case where self.model != .one
}
// do something with `value`

你是说这个吗在您的例子中,它应该类似于
如果case let.one(value)=self.model{use value…}
@MartinR我已经看过这个问题,但我不明白,如果case let.AsInt(num)=x{print(num)}没有引用存储枚举的变量,在我的例子中是-self.model。你能提供类似的例子吗?