我想创建一个全局的定制对象数组,这些对象可以在整个应用程序(AppDelegate、ViewController类、TableViewController类等)中访问。我研究过一种方法,但没有找到答案。我尝试将数组设置为一个公共作用域,但是我收到了一个编译器警告,上面写着Declaring public variable from internal class,当我试图在另一个文件中访问它时,我会得到一个错误,上面写着Use of unresolved identifier 'arrayObjectives'。
如何使应用程序中的所有文件都可以访问该数组,以及如何实例化该数组?
发布于 2014-10-28 05:11:07
从Swift编程语言 -
全局变量是在任何函数、方法、闭包或类型上下文之外定义的变量。
因此,您可以直接在import语句之后在任何文件的顶部声明变量。
不过,我建议你认真考虑一下。一般来说,全球化并不是个好主意。您最好使用单例上的属性或使用依赖项注入。
你的第二个问题“我将在哪里实例化数组?”是全球化不好的原因之一--它们的生命周期没有从其他对象的角度很好地定义。第一次使用时初始化的单例消除了这个问题。
发布于 2014-10-28 05:01:38
您可以像这样设置全局数组:
import UIKit
var abc : String = String()您可以在任何其他文件中访问它,如:
abc = "ABC"发布于 2016-09-08 23:09:23
尝试使用以下内容创建一个新的Swift文件:
struct Constants {
static let appName: String = "My App"
struct Colors {
static let colorTextStandard = UIColor(red: 0/255, green: 0/255, blue: 0/255, alpha: 0.3) //#000000
}
struct Data {
static var myStrings = [String]() // Yea, this is not a constant, but that's alright...
}
}然后,您可以使用以下方法引用这些全局常量(或者可以使它们成为变量):
Constants.appName或
Constants.Colors.colorTextStandard或
Constants.Data.myStrings = [stringOne, stringTwo]https://stackoverflow.com/questions/26601163
复制相似问题