在Swift中使用全局常量

时间:2017-01-16 06:44:29

标签: swift

在使用Java进行编程时,当我们使用这样的静态常量时,可以使用更清晰的代码:

public class Game {
    private static final int MAX_PLAYERS_NUMBER = 1000;
}

我非常喜欢这种方法,我想以某种方式将其投射到Swift。 所以我从静态常量开始:

class Game {
    static let maxPlayersNumber = 1000
}

它看起来很不错,但是当我总是必须在非静态方法中使用类名时,它在代码中很奇怪:

func doSomething() {
    print(Game.maxPlayersNumber)
}

所以我想到了两种方法,一种是课堂上的简单属性:

class Game {
    let maxPlayersNumber = 1000
}

第二个是在文件中使用全局常量:

let maxPlayersNumber = 1000

class Game {}

我还不确定在方法中使用常量的最佳解决方案是什么。

2 个答案:

答案 0 :(得分:2)

如果你想在整个项目中定义全局常量,你应该使用struct而不是Apple建议的类。

struct AppConstant {
    static let constant1 = 100
}

如果你想在整个班级中保持不变,你应该用你最后定义的let来定义一个属性。

 class Game {

    let maxPlayersNumber = 1000

    func doSomething() {
      print(maxPlayersNumber)
    }
 }

答案 1 :(得分:-1)

您可以创建一个继承自NSObject的新文件,并在此文件中声明常量,如下所示:

math.h

这里,可以通过以下方式在整个项目范围内访问maxPlayersNumber:

public static let maxPlayersNumber = 1000

其中Constants. maxPlayersNumber 是文件的名称,Constants是文件中声明的常量。