如何在Swift中最好地存储app宽的可访问变量和数组

时间:2018-01-31 22:10:23

标签: swift

我想在整个应用中访问一些已定义的数组和/或变量。通常,它们将用于填充UIPicker选项。在应用程序中为全局访问存储这些内容的最有效方法是什么?

例如。 activityType = [" Run"," Swimming"," Cycling"]

2 个答案:

答案 0 :(得分:4)

你可以创建一个类,并在该类中有一个像这样的静态变量:

class Activity: NSObject {

    var activityType = ["Run", "Swimming", "Cycling"]

    static var shared = Activity()
}

要访问此媒体资源,只需使用此行Activity.shared.activityType

即可

请记住,类是与值类型相对的引用类型,因此它与您在本地创建的数组略有不同,但在大多数情况下,这不会对您产生影响。如果您绝对需要值类型,则可以使用结构。您可以像修改数组Activity.shared.activityType = ["new val", "newvla2"]一样修改数组。

这将在您的应用中持续存在。

您还可以将它们存储为全局变量。这通常不被认为是最佳实践,但有时它只是最简单的方法。

您将如何做到这一点:

let activityType = ["Run", "Swimming", "Cycling"]

class ViewController: UIViewController {
    //Do whatever you want here for you VC 
}

如果您不打算修改它们,也可以创建一个包含值的结构或类。

class Activity: NSObject {
    let activityType = ["Run", "Swimming", "Cycling"]
}

struct Activity {
    let activityType = ["Run", "Swimming", "Cycling"]
}

答案 1 :(得分:0)

如果它们是常量,通常的做法是将它们放入包含静态成员的结构中。 e.g。

struct K {
    static let string1 = "some text"
    static let integer1 = 1
    static let array1 = ["a","b","c"]
}