检查实例的更好方法是从 类 列表中选择?

Better way to check the instance is kind from list of classes?

目前在 swift 中,我们可以使用 'is' 运算符检查实例的 class 类型。 例如:

....
guard anyInstance is MYClass else {
    return
}
....

在我的例子中,我需要将同一个实例与多个 class 类型进行比较, 例如:

...
    if anyInstance is MyClassOne ||
          anyInstance is MyClassTwo || anyInstance is MyClassThree {
          return
        }
...

swift有没有更好的方法来写这种条件?像

....

if anyInstance is (MyClassOne, MyClassTwo, MyClassThree) {
return
}
...

如果我从逻辑上考虑,为它们定义一个超类/协议会更有意义,像这样:

class MyClassNumber { }

class MyClassOne: MyClassNumber { }
class MyClassTwo: MyClassNumber { }
class MyClassLetter { }

let one = MyClassOne()
let two = MyClassTwo()
let letter = MyClassLetter()

if one is MyClassNumber {
    // TRUE
}

if two is MyClassNumber {
    // TRUE
}

if letter is MyClassLetter {
    // FALSE
}

看不到您的任何用例

根据您的评论,您似乎需要它来检查您的 anyInstance 是否来自 UIViewController 列表,那么您不想调用 dismiss():

There are no any method, where you can pass the array as:

if anyInstance is (MyClassOne, MyClassTwo, MyClassThree) {
    return
}

But, You can use the switch statement to perform this as:

suppose anyInstance is your class object

    switch anyInstance {
    case is MyClassOne, is MyClassTwo ,is MyClassThree:
        print("one is either from MyClassOne, MyClassTwo, MyClassThree")
    default:
        break
    }
class MyClassOne: MyClassNumber { }
class MyClassTwo: MyClassNumber { }
class MyClassThree: MyClassNumber { }

Inherit all class from one class and than check after that like

    if anyInstance is BaseClass{
    }