Ios 关联的枚举类型实现CaseTatable
我有两个枚举和一个关联的枚举。我需要立即从枚举A和枚举B获取所有可能的案例Ios 关联的枚举类型实现CaseTatable,ios,swift,enums,Ios,Swift,Enums,我有两个枚举和一个关联的枚举。我需要立即从枚举A和枚举B获取所有可能的案例 enum A { case a case b case c } enum B { case d case e case f } enum C { case first(A) case second(B) } extension C: CaseItratable { //How to implement? } 需要枚举C中的allCases方法,该方
enum A {
case a
case b
case c
}
enum B {
case d
case e
case f
}
enum C {
case first(A)
case second(B)
}
extension C: CaseItratable {
//How to implement?
}
需要枚举C中的allCases方法,该方法返回枚举a中的所有案例和枚举B中的所有案例1。符合
枚举a
和枚举B
到CaseIterable
协议
enum A: CaseIterable {
case a, b, c
}
enum B: CaseIterable {
case d, e, f
}
2.使用所有案例获取枚举A
和枚举B
的所有案例
enum C {
case first(A)
case second(B)
var casesOfA: [A] {
return A.allCases //here...
}
var casesOfB: [B] {
return B.allCases //here...
}
}
如果A
和B
也是CaseIterable
的话,它会更有帮助,那么您可以在C
中实现CaseIterable
,如下所示:
extension A: CaseIterable {}
extension B: CaseIterable {}
extension C: CaseIterable {
static var allCases: [C] {
return A.allCases.map(C.first) + B.allCases.map(C.second)
}
}
你的问题有点不清楚。您只想在枚举C中的一个方法中获取所有A和B事例?是的,我想在枚举C中获取所有可能的事例您不需要自动推断的类型别名。@Saranjith您使用的是哪个版本的Swift?它在Swift 5.1上运行良好。@Saranjith你做了什么?