Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-管理静态字符串和常量(如URL、ID、图像名称等)的最佳方法是什么_Ios_Xml_Static_Plist_Constants - Fatal编程技术网

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

Ios Swift-管理静态字符串和常量(如URL、ID、图像名称等)的最佳方法是什么,ios,xml,static,plist,constants,Ios,Xml,Static,Plist,Constants,现在,我们正在使用一个名为Constants.swift的平面文件,其中所有常量都被简单地写在那里或一个简单的枚举中。 这是一个好方法吗?有没有更好的方法(比如保存Plist或解析XML文件) 如果plist是一种方法,那么我如何正确地读取它们,而不让大量代码只是为了从中读取而过度使用呢 谢谢我认为使用枚举是一种很好的方法,如下所示: enum Constants { enum SubConstants { static let Constant1234 = "Hello

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

如果plist是一种方法,那么我如何正确地读取它们,而不让大量代码只是为了从中读取而过度使用呢


谢谢

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

enum Constants {
    enum SubConstants {
        static let Constant1234 = "Hello sir!"
    }
}
print(Constants.SubConstants.Constant1234)
然后像这样使用它:

enum Constants {
    enum SubConstants {
        static let Constant1234 = "Hello sir!"
    }
}
print(Constants.SubConstants.Constant1234)
如果您有一个根据国家、用户等提供常量的服务器,那么plist可能是一个很好的方法

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

更新:

Adnan指出,您不应该使用enum存储常量,因为这不是最佳实践,而是应该使用结构:

struct Constants {
    struct SubConstants {
        static let Constant1234 = "Hello sir!"
    }
}

使用enum而不是struct(都是静态变量)有什么好处?@Kubba使用struct时,您可以这样实例化它:让常量=常量(),为了避免这种情况,您使用了一个不允许it@MarcoSantarossa虽然你的建议在swift中是合法的但这不是最好的方案,enum是一种非常特殊的数据结构,用于保存相同数据类型的不同条目,根据定义,enum应该有case(我在这里谈论的是语义,而不是语法),谁知道在将来,没有case的enum会出现Swift add编译时错误。对于名称空间常量,应该使用结构,如果您使用enum的唯一原因是我们无法初始化它们,那么您可以通过在结构中添加一个私有的空init来实现相同的结果。而且,如果有人只是初始化它,也没有问题,因为他/她不能使用它,而且cimpiler会给编译时@MarkosDarkin提供“未使用的变量或常量”,所以最好的方法是使用enum/struct。。adnan说的有道理,你可以使用enum或struct..如果你不关心实例化一个结构的可能性,那么你可以使用它