Swift Constant文件?

时间:2017-03-07 11:57:01

标签: swift

我在我的应用程序上创建了一个常量文件constants.swift,我使用struct来定义常量,如下所示

struct moments {
    struct parameter {
        static let email = "email"
        static let me = "me"
        static let fields = "fields"
        static let params = "id, name, first_name, last_name, picture.type(large), email" 
    }

    struct title {
        static let timeLineTitle = "Moments"
        static let settingsTitle = "Settings"
        static let menuTitle = "Menu"
        static let openCamera = "Say Cheese!!! "
        static let openGallery = "Pick from Moments "
        static let addAudio = "Record Audio "
        static let addNote = "Write Note "
    }

    struct notification {
        static let notificationIdentifier = "NotificationIdentifier"
    }

    struct entity{
       static let image = "Image"
       static let note = "Note"
       static let Audio = "Audio"
    }

    struct menu {
       static let home = "Home"
       static let settings = "Settings"
       static let logout = "Logout"
    }

    struct cell {
        static let cellIdentifier = "timeLineCell"
        static let imageCell = "imageCell"
    }

}

但我发现了其他多个选项,例如使用classsingletonenum我想知道在我的应用中使用常量的有效方法...

5 个答案:

答案 0 :(得分:2)

用于准备常量的Class和Singleton类不需要,直到你想要那些常量为私有 您可以直接在swift文件中创建常量,如下所示。 enter image description here

或使用Struct。

enter image description here

两者都是创建常量的有效方法。如果希望常量为private并且用于指定的类,请使用class和Singleton 这段代码在swift 2.3中,它是创建常量的一般想法!

答案 1 :(得分:2)

Class和singleton类旨在用于不同的目的。当我们谈论编写纯常数时,应该排除这些。左边的两个选项是struct和enum。其中enum通常在我们对相似​​类型的常量进行分组时使用。例如,我们可以在枚举中保留变量的可能状态。其他选项结构最适合您的情况以及我们处理纯常数的情况。

答案 2 :(得分:1)

当你要求枚举案的另一个答案时。您可以在任何swift文件中创建enum private / public 正如你在这里看到的,我创建了两个枚举。 1用于我的私人用途,1用于公共用途。 enter image description here

允许在所有课程中访问私人。只允许在它声明的类的内部访问它 现在我尝试访问其他类中的枚举,如下所示。你可以在这里查看,我可以访问publicEnum但不能访问privateEnum。 enter image description here

现在让我告诉你如何在你声明它的类上访问私人枚举 enter image description here
你可以在这里查看,在enum_privately类中,你可以访问这两个。现在基于上面的详细说明,你可以根据你的要求,在何时何地使用哪种方式来计算它。

答案 3 :(得分:1)

以下是使用与现有类型相关的常量的示例

extension Double
{
    static var pi: Double
    {
        return 3.14159265358979323846264338327950288
    }
}

print(Double.pi)

答案 4 :(得分:1)

对于具有特定值的常量(如字符串),Swift枚举的问题在于您经常需要与原始值进行转换。这就是为什么我喜欢像你一样使用结构。

一般来说,我认为使用struct是一种好习惯,除非您因特殊原因需要class,并且只是为了保持常量,使用class没有任何优势。< / p>

将值放入单个字段的字段似乎是额外的工作,除非您有时需要具有不同的值,例如用于测试。