Swift 3.0中的Customtype数组插入崩溃
我试图在自定义类型数组中插入一个元素。但我正在摆脱索引错误。下面是我的代码:Swift 3.0中的Customtype数组插入崩溃,swift,swift3,Swift,Swift3,我试图在自定义类型数组中插入一个元素。但我正在摆脱索引错误。下面是我的代码: var newCGList = [TTCareGiverItem]() if let snapshotItems = snapshot.value as? [String:Any]{ for (_, snapshotData) in snapshotItems { let dict = snapshotData as? NSDictionary if let cgList = dict
var newCGList = [TTCareGiverItem]()
if let snapshotItems = snapshot.value as? [String:Any]{
for (_, snapshotData) in snapshotItems {
let dict = snapshotData as? NSDictionary
if let cgList = dict?.value(forKey: "ul") as? NSDictionary {
for cg in cgList{
let cgKey = cg.key as! String
for ctr in 0 ..< self.careGiverList.count{
let key = self.careGiverList[ctr].id as String
if key == cgKey{
let order: Int = Int(cg.value as! String)!
let aCG = self.careGiverList[ctr]
aCG.order = order
newCGList.insert(aCG, at: ctr)
break
}
}
}
}
}
var newCGList=[ttcareerItem]()
如果让snapshotItems=snapshot.value为?[字符串:任意]{
用于快照项中的(\ ux,快照数据){
让dict=快照数据作为NSDictionary
如果让cgList=dict?value(forKey:“ul”)作为?NSDictionary{
对于cgList中的cg{
设cgKey=cg.key为!字符串
对于0..
我缺少什么?
newCGList
在尝试插入元素时为空。
不确定为什么要使用“
newCGList.insert(aCG,at:ctr)
”,您可以使用“newCGList.append(aCG)
”。newCGList
在尝试插入元素时为空。
不确定您为什么要使用“
newCGList.insert(aCG,at:ctr)
”,您可以使用“newCGList.append(aCG)
”。如果您需要将项目放在某个索引中,但列表的大小小于所需的最大索引,那么当然这是不可能的,您将得到该错误(例如,在你的例子中,我猜发生的只是有时元素被添加到列表中,因此,你试图为下一个元素插入的索引将大于列表的大小,因此,导致该错误。在这种情况下,你应该使用从int到你的项的字典)。否则,如果重要的是它们是否有序,那么您可以做的是检查列表的大小是否小于您尝试在其中插入项目的索引。如果是,则如果您需要项目位于某个索引,但列表的大小小于所需的最大索引,则只需将其附加到末尾当然这是不可能的,你会得到这个错误(例如,在你的例子中,我猜发生的只是有时元素被添加到列表中,因此,你试图为下一个元素插入的索引将大于列表的大小,因此,导致该错误。在这种情况下,你应该使用从int到你的项的字典)。否则,如果重要的是它们是否有序,那么您可以做的是检查列表的大小是否小于您试图插入项目的索引。如果是,则只需将其追加到末尾您需要使用的是追加(:)
而不是插入(:at)
我需要在订单列表中插入append不起作用。@TechBee为什么用insert代替append?需要一个订单列表。不能使用append。你需要使用的是append(:)
而不是insert(::at)
我需要在订单列表中插入追加不起作用。@TechBee为什么使用插入而不是追加?需要一个有序列表。不能使用追加。我需要在订单列表中插入追加不起作用。对第一个元素使用追加,然后通过确保不插入外部索引来尝试插入。我需要在订单列表中插入追加不起作用对第一个元素使用append,然后通过确保不插入到外部索引来尝试插入。