2017-06-14 2 views
0

Ich versuche, ein Element in einem benutzerdefinierten Array einzufügen. Aber ich bekomme keinen Indexfehler mehr. Unten ist mein Code:CustomType Array einfügen Absturz in Swift 3.0

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 
       } 
       } 
      } 
     } 
    } 

Was ich vermisse?

+0

Was Sie brauchen, ist 'append (_ :)' nicht 'einfügen (_: at)' –

+0

Ich muss in einer Reihenfolge Liste einfügen funktioniert nicht . – TechBee

+0

@TechBee Warum verwenden Sie stattdessen einfügen? –

Antwort

1

newCGList ist zu dem Zeitpunkt leer, an dem Sie versuchen, das Element einzufügen. Nicht sicher, warum Sie 'newCGList.insert(aCG, at: ctr)' verwenden, stattdessen können Sie 'newCGList.append(aCG)' verwenden.

+0

Ich muss in einer Bestellliste einfügen Append wird nicht funktionieren. – TechBee

+0

Verwenden Sie für das erste Element anhängen und versuchen Sie dann einzufügen, indem Sie sicherstellen, dass Sie nicht in einen äußeren Index einfügen. –

0

Wenn Sie Ihre Artikel in einem bestimmten Index haben möchten, aber die Größe der Liste kleiner ist als der größte benötigte Index, dann ist dies natürlich nicht möglich und Sie erhalten diesen Fehler (zB in Ihrem Fall i Ich vermute, was passiert, ist nur, dass die Elemente manchmal der Liste hinzugefügt werden, deshalb wird der Index, den Sie für das nächste Element einzufügen versuchen, größer sein als die Größe der Liste und daher diesen Fehler verursachen In diesem Fall sollten Sie nur ein Wörterbuch verwenden, das von int zu Ihrem Artikel geht. Ansonsten, wenn alles was zählt ist, dass sie in Ordnung sind, dann können Sie prüfen, ob die Größe der Liste kleiner ist als der Index, in den Sie das Objekt einfügen möchten. Wenn ja, dann hänge es einfach an das Ende