2015-06-09 16 views
8

Chcę utworzyć słownik w szybkim tempie z różnymi typami danych (tablica, łańcuch, słownik) Jestem w stanie wstawić nowe dane do klucza, ale mając trudności z dołączeniem większej liczby wartości im oto json dla słownikaTworzenie i dodawanie wartości do słownika w szybkim tempie

{ 
    "GenInfo": { 
    "First Name":"Varun", 
    "Last Name":"Naharia", 
    "Phone No":"123456789" 
    }, 
    "LangInfo": ["Hindi","English","Urdu","French"], 
    "EduInfo": 
    [ 
     { 
     "Collage":"CIITM", 
     "Year":"2009", 
     "Degree":"BCA" 
     }, 
     { 
     "Collage":"Dept. Of Comp. Sci. & Infor. University Of Kota", 
     "Year":"2013", 
     "Degree":"MCA" 
     } 
    ] 
} 

Chcę dodać te wartości do słownika jeden po drugim jak pierwszy GenInfo, to najpierw Język LangInfo następnie EduInfo

LangInfo Lang Informacje

EduInfo EduInfo

I Used dict["GenInfo"] = ["FirstName":first,"LastName":last,"Phone":phone] dodać GenInfo w DIC gdzie pierwsza i ostatnia jest zmienną o wartości.

EDIT # 1 var dict = Dictionary<String, Any>()

+0

Czy możesz pokazać czy definiujesz dict? Jeśli używasz 'let', aby go zdefiniować, słownik nie będzie podlegał zmianom. Powinieneś użyć 'var', aby zmienić słownik na zmienny. – atreat

+0

tak to jest var i już dodałem GenInfo, ale mam problem z dodawaniem wartości tablicy jeden po drugim w LangInfo –

+0

OK, czy możesz napisać kod, w którym próbujesz dołączyć LangInfo? – atreat

Odpowiedz

9

Jest to znany problem, najwyraźniej nie jest jeszcze ustalona (patrz Is it possible to have a dictionary with a mutable array as the value in Swift)

Rozwiązaniem byłoby stworzenie nowej zmiennej z tablicy, a następnie przypisać ją z powrotem :

var dict = [String: AnyObject]() 
    dict["GenInfo"] = ["FirstName":"first","LastName":"last","Phone":"phone"] 
    dict["Language"] = ["langage1", "langage2"] 

    if var languages = dict["Language"] as? [String] { 
     languages.append("langage3") 
     dict["Language"] = languages 
    } 
Powiązane problemy