2017-06-19 5 views
0

Der Versuch, den Wert und den Schlüssel eines Wörterbuchs zu erhalten, das in einem Array gespeichert ist, um zwei UILabels zu füllen.Swift 3 - Holen Sie sich den Wert aus einem Array von Wörterbüchern

Mein Array sieht wie folgt aus:

var fromLocations = [["marco" : "polo"],["jekyll" : "hide"],["freddy" : "jason"]] 

Ich erhalte den Index durch eine indexPath Sammlung Ansicht. Derzeit versuche folgendes:

cell.locationName.text = fromLocations[indexPath.item].values[1] 

Ich habe eine Reihe anderer Möglichkeiten versucht, aber ich kann es nicht festnageln.

Antwort

1

Ist das, was Sie versuchen zu tun?

var fromLocations = [["marco" : "polo1"],["marco" : "polo2"],["marco" : "polo3"]] 
let marco = fromLocations[0]["marco"] 
print("marco = \(marco)") 

Dies druckt "Polo1". Grundsätzlich greifen Sie auf das erste Element des Arrays zu, das ein Wörterbuch ist. Sie greifen dann auf dieses Wörterbuch so zu, wie Sie normalerweise auf ein Wörterbuch zugreifen würden.

So ein Zusammenbruch wäre:

let fromLocations = [["marco" : "polo"],["marco" : "polo"],["marco" : "polo"]] 
let theDictionary = fromLocations[0] 
let value = theDictionary["marco"] 

Um nur die Werte als Array zu erhalten mit dem Schlüssel (was seltsam ist), drehen Sie die Werte in ein Array.

var fromLocations = [["marco" : "polo1"],["marco" : "polo2"],["marco" : "polo3"]] 
let marco = Array(fromLocations[0].values)[0] 
print("marco = \(marco)") 

Dies wird „Polo1“

+0

Art, ich habe verwendet Platzhalter-Text drucken, eine Reihe von Wörterbüchern zu zeigen - sowohl marco polo und würde in jedem Satz unterschiedlich sein. – user7684436

+0

Ah Gotcha. Wenn Sie die Wörterbuchschlüssel für den Zugriff nicht benötigen, warum verwenden Sie nicht einfach ein Array von Strings? – kailoon

+0

Danke - Ich habe versucht, zu schlau zu sein, ich denke, eine Reihe von Saiten wird in Ordnung sein :) – user7684436

Verwandte Themen