Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.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 在struct或其他方法中全局存储数组_Ios_Arrays_Swift_Struct_Global - Fatal编程技术网

Ios 在struct或其他方法中全局存储数组

Ios 在struct或其他方法中全局存储数组,ios,arrays,swift,struct,global,Ios,Arrays,Swift,Struct,Global,我有一个要全局存储的结构元素数组,这样我就可以在不同的类中访问它,而不必运行一遍又一遍地填充它的查询 我有一个结构: struct collectionStruct { var name : String var description : String var title : String var image : PFFile var id: String } 和一个变量: var collectionArray = [collectionStruct

我有一个要全局存储的结构元素数组,这样我就可以在不同的类中访问它,而不必运行一遍又一遍地填充它的查询

我有一个结构:

struct collectionStruct {
    var name : String
    var description : String
    var title : String
    var image : PFFile
    var id: String
}
和一个变量:

var collectionArray = [collectionStruct]()
以及一些用于构建阵列的代码:

for object in items {

                let arrayName = object.object(forKey: fromName) as! String
                let arrayDescription = object.object(forKey: fromDescription) as! String
                let arrayTitle = object.object(forKey: fromTitle) as! String
                let arrayImage = object.object(forKey: fromImage) as! PFFile
                let arrayID = object.objectId as String!

                collectionArray.append(collectionStruct(name: arrayName,
                                                            description: arrayDescription,
                                                                title: arrayTitle,
                                                                    image: arrayImage,
                                                                        id: arrayID!))
            }
我正在考虑创建另一个结构来保存阵列本身,但我在这里有点不知所措。我是这么想的:

struct globalArray {

var collectionArray = [collectionStruct]()

}

但可能还有一条路要走

您可以将singleton用于能够从任何地方访问的全局类:

class GlobalArray {
   static let shared = GlobalArray()
   var collectionArray = [collectionStruct]()
}
并按如下方式访问以分配或读取值:

GlobalArray.shared.collectionArray
您只需声明

var collectionArray = [collectionStruct]()
在任何文件的顶层(在任何对象之外),它将全局可用

e、 g


你应该考虑命名你的结构集合结构,而不是命名结构。要在任何可以创建单例的位置访问阵列。对于单例,通过给它一个私有构造函数,可以确保只有一个实例可用。以下是一个例子:

class Global {
    private init() { }
    static let sharedInstance = Global()
    var collection = [CollectionStruct]()
}
要使用它,您将使用以下内容:

Global.sharedInstance.collection

那就行了,谢谢。我想让自己难受一点。
Global.sharedInstance.collection