我正在帮助解决这个问题:tableViews with dictionary
我能够重现所有。但我需要我的字典是这样的:
var channelsCategorized = [String:[String:Int]]()
现在要使用字典中的每个值进行迭代,上面的链接就是这样做的:
for (key,value) in channelsCategorized{
structArray.append(channelsStruct(section: key, name: value))
}
如果我的字典是[String:[String]],那就是[String:[String:Int]]。我需要它添加到struct部分,name和id。我的字典是这样的:[movies:[channelName,idChannel]]
这是我的结构:
struct channelsStruct {
var section: String!
var name: [String]!
var channelId: String!
}
这是我的struct数组:
var structArray = [channelsStruct]()
答案 0 :(得分:0)
我将以下内容放在一起,这些内容应该说明如何在您的情况下实现这一点。注意我已经包含了一个检查,以便仅在所有值都可用时才创建结构。
let myDictionaryOfDictionaries : [String : [String : String]] = ["Apples" : ["Colour" : "Red", "Type" : "Granny Smith"],
"Oranges" : ["Colour" : "Orange", "Type" : "Seville"]]
struct fruit {
let name : String
let colour : String
let type : String
}
var fruits : [fruit] = [fruit]()
for (key, value) in myDictionaryOfDictionaries {
if let colour : String = value["Colour"], let type : String = value["Type"] {
let newFruit = fruit(name: key, colour: colour, type: type)
fruits.append(newFruit)
}
}
print(fruits.count) // Outputs 2
for f in fruits {
print("NAME: \(f.name) COLOUR: \(f.colour) TYPE: \(f.type)") //Outputs NAME: Apples COLOUR: Red TYPE: Granny Smith\n NAME: Oranges COLOUR: Orange TYPE: Seville
}