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