J'ai un dictionnaire simple qui se définit comme:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Maintenant, je veux ajouter un élément dans ce dictionnaire: 3 : "efg"
Comment puis-je ajouter 3 : "efg"
à ce dictionnaire existant?
swift
nsdictionary
Dharmesh Kheni
la source
la source
Réponses:
Vous utilisez
NSDictionary
. À moins que vous n'en ayez explicitement besoin pour ce type de raison, je vous recommande d'utiliser un dictionnaire Swift.Vous pouvez passer un dictionnaire Swift à n'importe quelle fonction attend
NSDictionary
sans aucun travail supplémentaire, carDictionary<>
et enNSDictionary
toute transparence 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 avecInt
comme clé etString
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.)En fonction de ce que je vois dans votre code, votre dictionnaire utilise
Int
comme clé etString
comme valeur. Pour créer une instance et ajouter un élément ultérieurement, vous pouvez utiliser ce code:Si vous devez ensuite l'affecter à une variable de
NSDictionary
type, faites simplement un cast explicite:Et, comme mentionné précédemment, si vous voulez le passer à une fonction attendue
NSDictionary
, passez-le tel quel sans conversion ni conversion.la source
Dictionary
objet, puis le convertirNSDictionary
à la fin si vous en avez besoin. Merveilleux. Merci."Antonio"
clé à1
doncdic[1]
reviendrait"abc, Antonio"
.vous pouvez ajouter en utilisant la manière suivante et passer
Dictionary
àNSMutableDictionary
la source
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Erreurfatal error: unexpectedly found nil while unwrapping an Optional value
Je sais que cela pourrait arriver très tard, mais cela pourrait s'avérer utile pour quelqu'un. Ainsi, pour ajouter des paires clé-valeur aux dictionnaires dans swift, vous pouvez utiliser la méthode updateValue (value:, forKey:) comme suit:
la source
SWIFT 3 - XCODE 8.1
Ainsi, votre dictionnaire contient:
dictionnaire [1: Hola, 2: Bonjour, 3: Aloha]
la source
dictionary[1] = "Hola"
?Si votre dictionnaire est
Int
pourString
vous, vous pouvez faire simplement:Si vous voulez ajouter des éléments à la valeur du dictionnaire, une solution possible:
la source
Swift 3+
Exemple pour attribuer de nouvelles valeurs au dictionnaire. Vous devez le déclarer comme NSMutableDictionary:
la source
Dans Swift, si vous utilisez NSDictionary , vous pouvez utiliser
setValue
:la source
Étant donné deux dictionnaires comme ci-dessous:
Voici comment ajouter tous les éléments de dic2 à dic1 :
À la vôtre A.
la source
.forEach
au lieu de.map
car nous n'avons pas besoin de tableau mappé de retourDict.updateValue
met à jour la valeur de la clé existante à partir du dictionnaire ou ajoute une nouvelle nouvelle paire clé-valeur si la clé n'existe pas.Exemple-
Résultat-
la source
Pour les boursiers utilisant
[String:Any]
au lieu deDictionary
ci-dessous l'extensionla source
Depuis Swift 5, la collection de codes suivante fonctionne.
la source
Il n'y a pas de fonction pour ajouter les données dans le dictionnaire. Vous attribuez simplement la valeur à une nouvelle clé dans le dictionnaire existant. il ajoutera automatiquement de la valeur au dictionnaire.
La sortie sera comme
["Nom": "Aloha", "utilisateur": "Aloha 2", "questions": "" Êtes-vous à moi "?"]
la source
la source
la source
Pour ajouter de nouveaux éléments, il suffit de définir:
la source
Jusqu'à présent, le meilleur moyen que j'ai trouvé pour ajouter des données à un dictionnaire en utilisant l'une des fonctions d'ordre supérieur de Swift, c'est-à-dire "réduire". Suivez l'extrait de code ci-dessous:
@ Dharmesh Dans votre cas, ce sera,
Veuillez me faire savoir si vous rencontrez des problèmes lors de l'utilisation de la syntaxe ci-dessus.
la source
Swift 5 Happy Coding
la source
J'ai ajouté l'extension Dictionary
vous pouvez utiliser
cloneWith
comme çala source
si vous souhaitez modifier ou mettre à jour NSDictionary, commencez par le transcrire en NSMutableDictionary
puis utilisez simplement
la source