Swift 如何在枚举中的所有枚举之间迭代

Swift 如何在枚举中的所有枚举之间迭代,swift,enums,enumeration,Swift,Enums,Enumeration,让我们假设我有某种枚举-“A”,其中还有3个枚举-“B”,“C”,“D” 所以看起来是这样的 enum A { enum B { } enum C { } enum D { } } 有没有可能像我遍历case值一样迭代思想B、C、D 编辑 我想从A中获取所有枚举,就像我从B、C、D中获取所有枚举数一样,在一个循环中使用它们这是可能的。。。仅当您对任何 enum A: CaseIterable { enum B { }

让我们假设我有某种枚举-“A”,其中还有3个枚举-“B”,“C”,“D” 所以看起来是这样的

enum A  {
    enum B {
    }
    enum C {
    }
    enum D {
    }
}
有没有可能像我遍历
case
值一样迭代思想B、C、D

编辑

我想从A中获取所有枚举,就像我从B、C、D中获取所有枚举数一样,在一个循环中使用它们

这是可能的。。。仅当您对
任何

enum A: CaseIterable  {
    enum B {
    }
    enum C {
    }
    enum D {
    }
}
for obj in A.AllCases() {
print(obj)
}
A.B
A.C
A.D
都是完全不同的类型。
将它们全部分组到一个数组中意味着它的类型为:
[Any]

enum A{
枚举B:CaseIterable{case foo,bar}
枚举C:CaseIterable{casefoo,bar}
枚举D:CaseIterable{case foo,bar}
//这是我补充的。这是“CaseIterable”协议中的“allCases”所熟悉的
静态变量allRecursiveEnumCases:[任何]{B.allCases+C.allCases+D.allCases}
}
让我们尝试访问它们
这样做的唯一方法是向下浇铸:

A.allRecursiveEnumCases中i的
{
如果让enumB=i为?A.B{
打印(“A.B.\(enumB)”)
}否则,如果让enumC=i作为?A.C{
打印(“A.C.\(枚举)”)
}否则,如果让enumD=i作为?A.D{
打印(“A.D.\(枚举)”)
}
}
//输出:
//A.B.foo
//酒吧
//A.C.foo
//交流酒吧
//阿迪福
//A.D.酒吧

我可以问一下为什么在枚举中有枚举吗?@RakeshaShastri主要是因为我使用
A.B.VALUE访问B enum中的值的结构
您所说的“在所有枚举之间迭代”到底是什么意思?你期望的结果是什么?你能举一个真实的例子吗?请回答您的问题并添加更多细节。好的。我将重新措辞。为什么要以
A.B.VALUE
的形式访问它?我认为您应该将实际存在的问题原封不动地分享给大家。这将遍历枚举的所有情况。这不是OP要问的问题。