2016-10-04 3 views
-1

Ich habe dieses Array, wo ich die Schlüssel bei der Erstellung festgelegt. Jetzt lade ich aus meiner Sicht einige weitere Informationen basierend auf IDs (den Schlüsseln).Swift 3 - Legen Sie den Schlüssel beim Anhängen an Array

var colors = [ 
    "37027" : UIColor(red:150/255, green:57/255, blue:103/255, alpha:1), 
    "12183" : UIColor(red:234/255, green:234/255, blue:55/255, alpha:1), 
    "44146" : UIColor(red:244/255, green:204/255, blue:204/255, alpha:1) 
] 

Ich möchte diesem Array dynamisch mehr Farben hinzufügen. Wie kann ich neue Elemente in das Array einfügen, die den Schlüssel festlegen? Etwas wie

colors["25252"] = UIColor(red:244/255, green:204/255, blue:204/255, alpha:1) 

Die obige Zeile funktioniert nicht, es ist nur um zu veranschaulichen, was ich brauche.

Vielen Dank für jede Hilfe

Update: oben der Code ist ein Beispiel. Unterhalb des echten Code:

var placedBeacons : [BeaconStruct] = [] 

     BeaconModel.fetchBeaconsFromSqlite(completionHandler: { 
      beacons in 

      for item in beacons{ 
       self.placedBeacons["\(item.major):\(item.minor)"] = item 
      } 
     }) 

Fehler: Cannot subscript a value of type '[BeaconStruct]' with an index of type String

+0

Sie ist nicht über ein Array, Sie haben ein Wörterbuch. Und ich sehe keinen Grund, warum diese Aufgabe nicht funktionieren sollte; stürzt es ab? Oder füge den Wert nicht hinzu? – Connor

+0

Welche Art von Array ist platziertBeacons? –

Antwort

1

Um den Schlüssel Subskribierung

self.placedBeacons["\(item.major):\(item.minor)"] = item 

Sie placedBeacons als Wörterbuch zu erklären haben zu passen, anstatt ein Array

var placedBeacons = [String:BeaconStruct]() 

Es erfordert, dass item vom Typ BeaconStruct

+0

Es funktionierte, danke! –

0

Der Code, den Sie geschrieben habe, sollte es funktionieren. Ich habe einen solchen Code verwendet und konnte erfolgreich implementieren. Ich habe deinen Code gerade getestet und es funktioniert für mich. Ich habe Farben in meiner Klassendatei global als Variable deklariert und in der view did load-Methode den zweiten Code hinzugefügt, um ein weiteres Element in meinem colors-Array hinzuzufügen. Nach dem Ausdrucken. Meine Ausgabe zeigt die vollständige Liste des Arrays mit 4 Elementen und die Anzahl der Array-Zählwerte gibt auch 4 zurück.

Bitte lassen Sie mich wissen, weitere Details Ihres Szenarios, damit ich Ihnen helfen kann, es herauszufinden, das Problem. aber sieht aus wie es funktionieren sollte.

+0

OK, der Code war nur ein Beispiel. Ich aktualisierte die Frage mit dem echten Code –

Verwandte Themen