Swift4.2支持添加了新的protocal CaseIterable
,方便我们获取枚举的所有枚举值。
现 CaseIterable 的枚举在编译器会自动合成 allCases 方法,且 allCases 数组中的元素按 case 声明的顺序。不过如果枚举中的关联值或者 @available 属性,则需要自己重写 allCases 。
enum AppRoute: String, CaseIterable {
case start
case h5
}
AppRouteEnum.allCases.forEach {
switch $0 {
case .start:
break
case .h5:
break
}
}