我想在整个应用中访问一些已定义的数组和/或变量。通常,它们将用于填充UIPicker选项。在应用程序中为全局访问存储这些内容的最有效方法是什么?
例如。 activityType = [" Run"," Swimming"," Cycling"]
答案 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"]
}