2016-10-21 2 views
-1

Я нуждающегося в помощи с этим: tableViews with dictionaryМассив структур с этим словарем в Swift

Я был в состоянии воспроизвести все. Но мне нужен словарь, чтобы быть похожим на это:

var channelsCategorized = [String:[String:Int]]() 

Теперь итерацию с каждым значением из словаря ссылку выше говорит, чтобы сделать это:

for (key,value) in channelsCategorized{ 

     structArray.append(channelsStruct(section: key, name: value)) 

    } 

Это если мой словарь был [String: [String]], но это [String: [String: Int]]. Мне нужно его добавить к разделу структуры, имени и id. Мой словарь это что-то вроде этого: [movies:[channelName,idChannel]]

Это моя структура:

struct channelsStruct { 

    var section: String! 
    var name: [String]! 
    var channelId: String! 
} 

и это моя структура массива:

var structArray = [channelsStruct]() 

ответ

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 
} 
+0

Это было. Большое большое спасибо. – JoseMartinFit

+0

@JoseMartinFit не проблема - нам всем нужна помощь время от времени! – Sparky

Смежные вопросы