Comment ajouter des éléments dans le dictionnaire dans swift?

J'ai un dictionnaire simple qui est défini comme:

var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]

, Mais plus tard je voudrais ajouter un élément dans ce dictionnaire, qui est 3 : "efg"

, Mais je n'ai aucune idée de comment puis-je effectuer cette action, j'ai beaucoup cherché sur internet mais rien ne m'aide.

Quelqu'un Peut-il me dire comment puis-je ajouter 3 : "efg" dans ce dictionnaire?

142
demandé sur Dharmesh Kheni 2014-12-05 12:59:44

13 réponses

Vous utilisez NSDictionary. Sauf si vous avez explicitement besoin d'être ce type pour une raison quelconque, je recommande d'utiliser un dictionnaire Swift.

Vous pouvez passer un dictionnaire Swift à n'importe quelle fonction attendant NSDictionary sans travail supplémentaire, car Dictionary<> et NSDictionary se lient de manière transparente les uns aux autres. L'avantage de la méthode SWIFT native est que le dictionnaire utilise des types génériques, donc si vous le définissez avec Int comme clé et String comme valeur, vous ne pouvez pas utiliser par erreur des clés et des valeurs de différents types. (Le compilateur vérifie les types en votre nom.)

Sur la base de ce que je vois dans votre code, votre dictionnaire utilise Int comme clé et String comme valeur. Pour créer une instance et Ajouter un élément ultérieurement, vous pouvez utiliser ce code:

var dict = [1: "abc", 2: "cde"] // dict is of type Dictionary<Int, String>
dict[3] = "efg"

Si vous devez plus tard l'affecter à une variable de type NSDictionary, Faites simplement un cast explicite:

let nsDict = dict as! NSDictionary

Et, comme mentionné précédemment, si vous voulez le passer à une fonction attend NSDictionary, Passez-le TEL QUEL sans conversion ni conversion.

174
répondu Antonio 2015-12-23 07:44:43

Vous pouvez ajouter de la manière suivante et changer Dictionary en NSMutableDictionary

dict["key"] = "value"
82
répondu yashwanth77 2014-12-05 10:17:58

Je sais que cela pourrait arriver très tard, mais cela peut s'avérer utile à quelqu'un. Donc, pour ajouter des paires de valeurs clés aux dictionnaires dans swift, vous pouvez utiliser updateValue (value: , forKey: ) Méthode comme suit:

var dict = [ 1 : "abc", 2 : "cde"]
dict.updateValue("efg", forKey: 3)
print(dict)
55
répondu HeadOnn 2016-02-29 08:35:47

SWIFT 3-XCODE 8.1

var dictionary =  [Int:String]() 

dictionary.updateValue(value: "Hola", forKey: 1)
dictionary.updateValue(value: "Hello", forKey: 2)
dictionary.updateValue(value: "Aloha", forKey: 3)

Ainsi, votre dictionnaire contient:

Dictionnaire[1: Hola, 2: Bonjour, 3: Aloha]

31
répondu Cristian Mora 2016-12-08 13:44:24

Si votre dictionnaire est Int à String, vous pouvez le faire simplement:

dict[3] = "efg"

Si vous voulez dire ajouter des éléments à la valeur du dictionnaire une solution possible:

var dict = Dictionary<String, Array<Int>>()

dict["key"]! += [1]
dict["key"]!.append(1)
dict["key"]?.append(1)
14
répondu Alex Gidan 2016-08-02 10:15:52

Dans Swift, si vous utilisez NSDictionary , Vous pouvez utiliser setValue:

dict.setValue("value", forKey: "key")
12
répondu lojals 2016-02-05 22:40:02

Swift 3+

Exemple pour attribuer de nouvelles valeurs au dictionnaire. Vous devez le déclarer comme NSMutableDictionary:

var myDictionary: NSMutableDictionary = [:]
let newValue = 1
myDictionary["newKey"] = newValue
print(myDictionary)
12
répondu Dasoga 2016-12-22 22:35:15

Étant donné deux dictionnaires comme ci-dessous:

var dic1 = ["a": 1, "c": 2]
var dic2 = ["e": 3, "f": 4]

Voici comment vous pouvez ajouter tous les éléments de dic2 à dic1:

dic2.map {
   dic1[$0.0] = $0.1
}

Santé A.

8
répondu Amin Tavassolian 2016-05-30 22:51:09

Dict.updateValue met à jour la valeur de la clé existante à partir du dictionnaire ou ajoute une nouvelle paire clé-valeur si la clé n'existe pas.

Exemple-

var caseStatusParams: [String: AnyObject] = ["userId" : UserDefault.userID ]
caseStatusParams.updateValue("Hello" as AnyObject, forKey: "otherNotes")

Résultat-

▿  : 2 elements
    - key : "userId"
    - value : 866
▿  : 2 elements
    - key : "otherNotes"
    - value : "Hello"
7
répondu Varsha Gaikwad 2017-11-16 10:29:05
var dict = ["name": "Samira", "surname": "Sami"]
// Add a new enter code herekey with a value
dict["email"] = "sample@email.com"
print(dict)
1
répondu Queen Semiramis 2016-11-22 10:42:35

Jusqu'à présent, la meilleure façon que j'ai trouvé pour ajouter des données à un dictionnaire en utilisant l'une des fonctions supérieures de Swift à savoir "réduire". Suivez ci-dessous l'extrait de code:

newDictionary = oldDictionary.reduce(*newDictionary*) { r, e in var r = r; r[e.0] = e.1; return r }

@Dharmesh, Dans votre cas, il sera,

newDictionary = dict.reduce([3 : "efg"]) { r, e in var r = r; r[e.0] = e.1; return r }

Veuillez me faire savoir si vous trouvez des problèmes dans l'utilisation de la syntaxe ci-dessus.

1
répondu Shobhit C 2017-05-23 12:26:27

Vous pouvez utiliser une autre classe de testeur pour définir la valeur du dictionnaire comme

variableValue["X"] = 3.14

Au-dessus de variableValue est un dictionnaire créé par une autre classe. Vous définissez key:value.

-5
répondu Swikar 2015-06-22 02:04:58

Si vous souhaitez modifier ou mettre à jour NSDictionary alors tout d'abord typecast comme NSMutableDictionary

let newdictionary = NSDictionary as NSMutableDictionary

Ensuite, utilisez simplement

 newdictionary.setValue(value: AnyObject?, forKey: String)
-8
répondu Sonu Verma 2018-03-01 09:04:22