2017-08-03 1 views
-2

Ich rauschen ein Projekt und bin nicht die Antwort zu finden, um erforschen können. Ich hoffe, ich kann dabei helfen.iOS kann [String: Any?] In [String] nicht konvertieren Wie konvertiert man?

var tt: Array<[String:Any]> = [] 
var forpickarray: [String] = [] 

Fehler: kann nicht konvertieren [Zeichenfolge: egal] bis [String]

for index in 1...self.tt.count { 
    var arr: [String] = self.tt[index-1] 
    forpickarray.append(self.tt[index-1])      
} 

Ich versuche, die wert- gerade den Listennamen

+0

Was soll die Ausgabe von Ihrem Array von Wörterbüchern sein? Ich versuche immer noch herauszufinden, was du eigentlich fragst. Haha: D – Fogmeister

+0

Bro, Sie versuchen, ein Wörterbuch in und Array von Zeichenfolge zuzuweisen. –

Antwort

2

Oh haben könnte, nur deine Bearbeitung gesehen. Hilft viel.

Um den Wert des listName von jedem Wörterbuch erhalten Sie so tun können ...

forPickArray = tt.flatMap { $0["listName"] } 

Benennen Sie Ihre Variablen sinnvolle Namen haben. tt ist kein vernünftiger Name. Ich habe keine Ahnung, was es ist: D

+0

Danke! Aber ich versuche den Wert zu bekommen. Ich aktualisierte das qn – OneNation

+0

Schön, dass das funktioniert! – OneNation

1

in Ihrem for- zu erhalten Schleife, versuchen Sie Schlüssel aus dem Wörterbuch zu extrahieren und in ein Array zu konvertieren? dann müssen Sie folgendes tun:

var arr: [String] = Array(tt[index-1].keys) 
forpickarray.append(contentsOf: arr) 

Da tt ist ein Array von Wörterbuch, jedes Element in tt viele Schlüssel

+0

Danke! Aber ich versuche den Wert zu bekommen. Ich aktualisierte das qn – OneNation

1

Verwenden Sie bitte native Swift-Syntax anstelle von hässlichen Objective-cish Code.

Eine Schleife wird nicht benötigt:

forpickarray = tt.flatMap{ $0["listName"] as? String } 

Selbst wenn eine Schleife war erforderlich, da eine viel effizientere Art und Weise ist als ein (Null!) Indexbasierte for Schleife:

for item in tt { 
    forpickarray.append(item) 
} 
Verwandte Themen