Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays 是否创建结构数组的数组?_Arrays_Swift_Struct_Uicollectionview - Fatal编程技术网

Arrays 是否创建结构数组的数组?

Arrays 是否创建结构数组的数组?,arrays,swift,struct,uicollectionview,Arrays,Swift,Struct,Uicollectionview,我有一个从一些对象构建结构数组的查询。我想将这些结构中的多个附加到单个数组中,以便使用它填充嵌套在collectionview中的collectionview。我不确定这是不是最好的主意,但这是我目前唯一能想到的 class GlobalPartArray { private init() { } static let sharedInstance = GlobalPartArray() var globalPartArray = [CollectionStruct]()

我有一个从一些对象构建结构数组的查询。我想将这些结构中的多个附加到单个数组中,以便使用它填充嵌套在collectionview中的collectionview。我不确定这是不是最好的主意,但这是我目前唯一能想到的

class GlobalPartArray {
    private init() { }
    static let sharedInstance = GlobalPartArray()
    var globalPartArray = [CollectionStruct]()
}
class GlobalParentArray {
    private init() { }
    static let sharedInstance = GlobalParentArray()
    var globalParentArray = [[GlobalPartArray]]()
}
所以我的结构是:

struct CollectionStruct {
    var name : String
    var description : String
    var title : String
    var image : PFFile
    var id: String
}
因此,在我的viewcontroller中,保存结构的变量为:

var packArray : [CollectionStruct] = []
var partArray : [CollectionStruct] = []

var packId = ""
下面我将使用先前创建的packArray中的一项来查询数据库并构建我的partArray。因为我想多次这样做,并将partArray附加到一个更大的父数组中,所以我考虑使用for循环,如:

var i  = 0

for item in self.packArray as [AnyObject] {

    self.packId = self.packArray[i].id

        BuildArray.buildArrayFromQuery(queryForCollection: "Part", selectedPackID: self.packId, delegateSender: "DownloadPart", completeBlock: { (result) in

            self.partArray = result

            // append this to an array of partArray????

        })
}
我甚至不知道从哪里开始。这是个坏主意吗

基本上,我认为在cellforitem中调用这个父数组可能类似于:

innerCell.imageCell.image = parentArray[indexPath.item].partArray[indexPath.item].image
但我可能离这里很远

-----编辑-----

因此,设置self.partArray后,我可以在闭包内使用多维数组:

self.partArray = result
    var parentArray = [[self.partArray]]
        parentArray.append([self.partArray])
但这在关闭之外是无法使用的。如何在设置self.partArray之前声明此多维数组

-------编辑-------

目前正在调查全球的情况

class GlobalPartArray {
    private init() { }
    static let sharedInstance = GlobalPartArray()
    var globalPartArray = [CollectionStruct]()
}
class GlobalParentArray {
    private init() { }
    static let sharedInstance = GlobalParentArray()
    var globalParentArray = [[GlobalPartArray]]()
}
然后在内部关闭:

GlobalPartArray.sharedInstance.globalPartArray = result
      //can not convert [CollectionStruct] to [GlobalPartArray]
GlobalParentArray.sharedInstance.globalParentArray.append(GlobalPartArray.sharedInstance.globalPartArray)

但在尝试转换时,它会抛出一个错误。在附加到GlobalParentArray之前,我显然需要以某种方式转换这些数据。

您尝试它时发生了什么?我甚至不知道如何创建一个包含多个结构数组的数组。多个CollectionStruct的数组是
[CollectionStruct]
,我想您已经知道了。好的,一个集合结构的多个数组将是一个
[[CollectionStruct]]
。没问题。可能的重复项应该始终追加,而不是设置
partArray
,因为
BuildArray.buildArrayFromQuery
看起来像异步调用