Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将一个枚举类型分配给另一个枚举类型_Ios_Swift_Swift2 - Fatal编程技术网

Ios 将一个枚举类型分配给另一个枚举类型

Ios 将一个枚举类型分配给另一个枚举类型,ios,swift,swift2,Ios,Swift,Swift2,如何将一个枚举类型的变量类型转换为另一个枚举类型。我有两个整数枚举。当我创建第一个枚举类型的变量并从第二个枚举中赋值时,它不允许我这样做。我们如何才能做到这一点 下面是代码 enum Sections: Int { case initiateZero = 0 case Air case Weight } enum SubSections: Int { case MaxPath = 0 case Weight case FullWeight }

如何将一个枚举类型的变量类型转换为另一个枚举类型。我有两个整数枚举。当我创建第一个枚举类型的变量并从第二个枚举中赋值时,它不允许我这样做。我们如何才能做到这一点

下面是代码

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)
}

无法分配它们。请建议。

我想不出有效的用例,但您可能希望使用它的
rawValue
s:

enum Enum1: Int {
    case one = 0
    case two = 1
}

enum Enum2: Int {
    case one = 0
    case two = 1
}

let enum1 = Enum1.one
let enum2 = Enum2(rawValue: enum1.rawValue)

print(enum2)
印刷品:

Optional(Enum2.one)

请显示两个枚举的代码。如果两个枚举使用相同的原始类型,则可以这样做,但实际上不应该这样做that@alexburtnik您可以查看代码吗?为什么您要尝试将
小节
值设置为类型为
的变量?在这之后,您将如何使用
变量
if else
?mby您需要将变量类型标签添加为Any,因为节的类型默认为Sections,或者您应该为两个枚举创建一个协议。如果我将此变量声明为AnyObject,则不允许我在那里进行类型转换。我发现检查它们的唯一方法是声明至少一个枚举类型变量。请查看我需要传递indexpath的rawvalue前面的值。在执行此操作之前,我需要更改该内容。您说的“rawvalue前面的值”是什么意思?