2016-10-13 2 views
0

Ich bin ein Wörterbuch des Typs Empfangen [Zeichenfolge: Alles] und ich möchte überprüfen, ob Wert im Wörterbuch ein Array ist, dass die zu einem bestimmten Protokoll entsprechen:Swift 2.2 Array entspricht Protokoll

protocol ToDictionary { 
    var badjoras: Bool { get set } 
} 

struct Badjoras: ToDictionary { 
    var badjoras: Bool 
} 

let newArray: [String: Any] = ["First": [Badjoras(badjoras: true)]] 

for (key, value) in newArray { 
    if let newValue = value as? [ToDictionary] { 
     print(true) 
    } 
} 

Dies funktioniert perfekt in Swift 3.0, aber in Swift 2.2 nicht. Irgendwelche Ideen, wie ich das erreichen kann?

Dank

+0

Statt versuchen, wie überprüfen Überprüfung –

+0

Die Sache ist, ich ein Array empfangen können jede Art, nicht nur "Badjoras" :) –

Antwort

0

Try Nach: "Wert als [ToDictionary]" "? Wert als [Badjoras]"

protocol ToDictionary { 
    var badjoras: Bool { get set } 
} 

struct Badjoras: ToDictionary { 
    var badjoras: Bool 
} 

let newArray: [String: Any] = ["First": [Badjoras(badjoras: true)]] 

for (key, value) in newArray { 
    if value is [ToDictionary] { 
     print(true) 
    } 
} 
+0

Vielen Dank für Ihren Kommentar. Aber funktioniert auch nicht :( –

Verwandte Themen