注意:我想在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文件中导入,这使得我的项目中的所有文件都可以访问它,但在这种情况下我无能为力
答案 0 :(得分:26)
如果你的枚举是在这样的类中定义的:
class MyClass {
enum Planet: Int {
// ...
}
}
您必须通过班级访问它:
var aPlanet = MyClass.Planet.Earth
您还想使用rawValue
属性。您将需要它来访问实际的Int值:
var aPlanet = MyClass.Planet.Earth.rawValue
答案 1 :(得分:21)
在swift中,您可以在任何类或函数之外声明枚举,变量或函数,它将在所有类中(全局)可用(无需导入特定文件)。