Swift - 在switch语句中使用enum

sol*_*eil 5 enums switch-statement swift

我收到此错误:

'NSNumber' is not a subtype of Cat
Run Code Online (Sandbox Code Playgroud)

这是代码:

enum Cat:Int {
    case Siamese = 0
    case Tabby
    case Fluffy
}

let cat = indexPath.row as Cat
    switch cat {
    case .Siamese:
        //do something
        break;
    case .Tabby:
        //do something else
        break;
    case .Fluffy:

        break;
    }
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

GoZ*_*ner 9

使用Cat.fromRaw(indexPath.row)得到的枚举.

因为返回值fromRaw()可选的,所以使用它如下:

if let cat = Cat.fromRaw (indexPath.row) {
  switch cat {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)