Swift - 管理静态字符串和常量的最佳方法是什么(如URL,ID,图像名称等)

Mar*_*kin 2 xml static constants plist ios

现在我们正在处理一个名为Constants.swift的平面文件,其中所有常量只是简单地写在那里或在一个简单的枚举中.这是一个好方法吗?有没有更好的方法(比如保存Plist或解析XML文件)?

如果Plists是要走的路,我怎样才能正确地读取它们而不用大量的代码来解读它?

谢谢

Mar*_*ssa 6

我认为使用枚举是一种很好的方法,如下所示:

enum Constants {
    enum SubConstants {
        static let Constant1234 = "Hello sir!"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它:

print(Constants.SubConstants.Constant1234)
Run Code Online (Sandbox Code Playgroud)

如果你有一个服务器根据国家,用户等提供常量,那么plist可能是一个很好的方法.

如果您想使用plist,可以按照指南操作.

更新:

Adnan如何指出,你不应该使用枚举来存储常量,因为它不是最佳实践,而是你应该使用结构:

struct Constants {
    struct SubConstants {
        static let Constant1234 = "Hello sir!"
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @MarcoSantarossa虽然你所建议的是swift中的合法,但这不是最好的parctice,Enums是非常特殊的数据结构,用于保存相同数据类型的不同条目,根据定义,枚举应该有案例(我在谈论语义,而不是这里的语法)以及谁知道将来Swift为没有案例的枚举添加编译时错误.对于命名空间常量,应该使用Structs,如果只是因为你使用enum我们无法初始化它们,那么你可以通过在struct中添加一个私有的空init来实现. (3认同)
  • 带有结构的@Kubba你可以这样实例化它:let constants = Constants()并避免这种情况你使用一个不允许它的枚举 (2认同)