2015-06-09 36 views
8

Voglio creare un dizionario in swift con diversi tipi di dati (array, stringa, dizionario) Sono in grado di inserire nuovi dati in una chiave ma ho difficoltà ad aggiungere altri valori a loro qui è la jSON per il dizionarioCome creare e aggiungere valori al dizionario in swift

{ 
    "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" 
     } 
    ] 
} 

voglio aggiungere questi valori al dizionario uno per uno, come prima GenInfo, poi la prima lingua del LangInfo poi EduInfo

LangInfo Lang Info

EduInfo EduInfo

ho usato dict["GenInfo"] = ["FirstName":first,"LastName":last,"Phone":phone] aggiungere il GenInfo nel DIC dove prima e l'ultima è la variabile con un valore.

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

+0

Puoi mostrare definisci? Se stai usando 'let' per definirlo il dizionario non sarà mutabile. Dovresti usare 'var' per rendere quel dizionario mutabile. – atreat

+0

sì è var e ho già aggiunto GenInfo ma avendo problemi ad aggiungere il valore dell'array uno per uno in LangInfo –

+0

Ok puoi postare il codice dove stai provando ad aggiungere il LangInfo? – atreat

risposta

9

Questo è un problema noto, a quanto pare non ancora fissata (vedi Is it possible to have a dictionary with a mutable array as the value in Swift)

La soluzione potrebbe essere quella di creare una nuova variabile con la matrice e quindi assegnare indietro :

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 
    } 
Problemi correlati