2014-06-29 36 views
6

posso creare un NSDictionaryImpostare gli oggetti di svuotare NSDictionary a Swift

var namesDictionary=Dictionary<String,String>() 
    namesDictionary["Jacob"] = "Marry" 

Ma, quando creo un dizionario vuoto come codificato sotto, la linea 1 i Okie, ma la linea 2 (valori aggiungendo) genera un errore.

var namesDictionary =[:] 
    namesDictionary["Jacob"] = "Marry" 

L'errore è "Impossibile assegnare al risultato di questa espressione". C'è un altro modo per assegnare i valori.

risposta

13

Sembra che si tratti di un'interpretazione rapida del tipo di dizionario. Prova a digitare in modo esplicito il tuo dizionario vuoto.

var namesDictionary: Dictionary<String, String> = [:] 
namesDictionary["Jacob"] = "Marry" 

Credo che un uso migliore per [:] è per lo svuotamento di un dizionario già definito. Se si aggiunge una terza riga namesDictionary = [:], sarà possibile chiamare nuovamente namesDictionary["Jacob"] = "Marry" poiché il compilatore sa che tipo di dizionario è dalla dichiarazione iniziale.

+0

Quindi dovrebbe essere stato generato errore nella prima riga. – andyPaul

+1

La prima riga va bene. Crea un dizionario vuoto, ma i tipi chiave/valore non sono stringhe. Il dizionario a questo punto è praticamente inutile in quanto non accetta alcuna coppia di valori chiave – connor

+0

Okie, qual è la differenza tra var namesDictionary = Dictionary () e var namesDictionary: Dictionary = [:] – andyPaul

Problemi correlati