2016-07-16 7 views
0

Ich versuche, ein gemischtes Musterwörterbuch in zu erstellen, die entweder String:String oder String:Dictionary wie folgt enthält. Kann jemand helfen?So erstellen Sie gemischte Muster Wörterbücher in Swift

var tempDict = ["Electronics":"TV"],["Home":["Kitchen":"Utensils"],["BedRoom":"Bed "],["DiningRoom":"Dining"]] 

Antwort

0

Ich kann fehlen, was Sie wirklich tun wollen, aber Sie können ein Wörterbuch wie folgt erklären:

var tempDict = ["Electronics":"TV","Home":["Kitchen":"Utensils"],"BedRoom":"Bed ","DiningRoom":"Dining"] 

Swift (ab 2.2.1) folgert die Art der tempDict als [String: NSObject], so können Sie die Werte mit dem Gießen verwenden:

if let electronics = tempDict["Electronics"] as? String { 
    print(electronics) 
} 
if let home = tempDict["Home"] as? [String: String] { 
    print(home) 
} 
+0

Ich habe abgeleitete Typkonzept wie Sie erwähnt und haben mein Wörterbuch mit Ihrem Beispiel erstellt. Vielen Dank !! – Max

+0

@Max, Swift macht manchmal große Fehler beim Ableiten von Sammlungsarten. Versuchen Sie in solchen Fällen, explizite Annotationen wie 'var tempDict: [String: NSObject]' oder 'var tempDict: [String: AnyObject]' hinzuzufügen. – OOPer

0

Verwendung ANYOBJECT:

var tempDict: [String: AnyObject] = ["Electronics":"TV"] 
tempDict = ["Home":["Kitchen":"Utensils"] 
      ["BedRoom":"Bed "], 
      ["DiningRoom":"Dining"]] 



var tempDict = [ 
    "ElectronicsString" : "TV", 
    "HomeDic" : [ 
     [ 
      "Kitchen" : "Utensils", 
      "BedRoom":"Bed ", 
      "DiningRoom":"Dining", 
     ] 
    ], 
    "BetArray" : [ 
     "cat", 
     "dog" 
    ] 
] 

Übrigens, wenn ein Wörterbuch ein großes zusammengesetztes Wörterbuch ist, wird der Compiler von Swift einen Fehler haben. So können Sie es wie folgt lösen:

var tempDict: [String: AnyObject] = [ 
    "ElectronicsString" : "TV" 
] 

tempDict["HomeDic"] = [ 
    [ 
     "Kitchen" : "Utensils", 
     "BedRoom":"Bed ", 
     "DiningRoom":"Dining", 
    ] 
] 

tempDict["BetArray"] = [ 
    "cat", 
    "dog" 
] 
Verwandte Themen