【发布时间】:2016-11-08 14:58:55
【问题描述】:
我们如何将一种枚举类型的变量类型转换为另一种。我有两个 Int 枚举。当我创建一个 First 枚举类型的变量并从 second 分配一些值时,它不允许我这样做。我们如何才能做到这一点?
下面是代码
enum Sections: Int {
case initiateZero = 0
case Air
case Weight
}
enum SubSections: Int {
case MaxPath = 0
case Weight
case FullWeight
}
为了得到它们。
var section = Sections.initiateZero
if isLongForm {
section = Sections(rawValue: indexPath.section)!
} else {
section = SubSections(rawValue: indexPath.section)
}
无法分配它们。请提出建议。
【问题讨论】:
-
请显示两个枚举的代码。如果两个枚举都使用相同的原始类型,你可以这样做,但实际上你不应该这样做
-
@alexburtnik 你能看一下代码吗
-
你为什么要将
SubSection值设置为类型为Section的变量?在if-else之后你将如何使用section变量? -
mby 您需要将变量类型标签添加为 Any,因为默认情况下 section 的类型是 Sections 或者您应该为两个枚举创建一个协议。
-
如果我将此 var 声明为 AnyObject 它不允许我在那里进行类型转换。我发现检查它们的唯一方法是声明至少一个枚举类型 var。