Enums 创建用于在swift中定义常量的类

Enums 创建用于在swift中定义常量的类,enums,swift,constants,Enums,Swift,Constants,注意:我想在swift中实现类似的功能- 我有两个类-MasterViewController和DetailViewController 我想定义一个枚举(参见下面的枚举)并在两个类中使用它的值: enum Planet: Int { case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune } 我尝试在MasterViewController中定义它,并在DetailViewController中使用

注意:我想在swift中实现类似的功能-

我有两个类-MasterViewController和DetailViewController

我想定义一个枚举(参见下面的枚举)并在两个类中使用它的值:

enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
我尝试在MasterViewController中定义它,并在DetailViewController中使用它,如下所示:

let aPlanet = Planet.Earth
class MyClass {
    enum Planet: Int {
        // ...
    }
}
但编译器正在抱怨:(

“未解析标识符行星的使用”


通常在我的objective c代码中,我曾经有一个全局常量文件,我用来在app-prefix.pch文件中导入该文件,这使得我的项目中的所有文件都可以访问该文件,但在这种情况下,我对此一无所知。

如果您的枚举是在这样的类中定义的:

let aPlanet = Planet.Earth
class MyClass {
    enum Planet: Int {
        // ...
    }
}
您必须通过您的类访问它:

var aPlanet = MyClass.Planet.Earth
您还需要使用
rawValue
属性。您需要该属性才能访问实际的Int值:

var aPlanet = MyClass.Planet.Earth.rawValue

在swift中,您可以在任何类或函数之外声明枚举、变量或函数,它将在您的所有类中(全局)可用(无需导入特定文件).

您确定正在编译您的enum文件吗?此代码对我有效。是的。.交叉验证,您可以共享您的示例代码吗?可能是我遗漏了一些小东西。我确实在同一项目中将您的第一个代码块放入一个文件中,将第二个代码块放入另一个文件中,并且编译良好。您的enum是否在another中定义r block,可能是一个类?明白了..你发现了我的错误,thnx:)函数toRaw()现在已被Swift 2.0中的property.rawValue替换。所以你现在就要写MyClass.Planet.Earth.rawValue了