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

时间:2014-08-08 04:27:04

标签: enums swift constants

注意:我想在swift中实现类似的功能 - Where to store global constants in an iOS application?

我有两个类 - MasterViewController和DetailViewController

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

enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}

我尝试在MasterViewController中定义它并在DetailViewController中使用它,如下所示:

let aPlanet = Planet.Earth

但编译器抱怨:(

  

"使用未解析的标识符Planet"

通常在我的目标c代码中,我曾经有一个全局常量文件,我曾经在app-prefix.pch文件中导入,这使得我的项目中的所有文件都可以访问它,但在这种情况下我无能为力

2 个答案:

答案 0 :(得分:26)

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

class MyClass {
    enum Planet: Int {
        // ...
    }
}

您必须通过班级访问它:

var aPlanet = MyClass.Planet.Earth

您还想使用rawValue属性。您将需要它来访问实际的Int值:

var aPlanet = MyClass.Planet.Earth.rawValue

答案 1 :(得分:21)

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