Tengo un diccionario simple que se define como:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Ahora quiero agregar un elemento a este diccionario: 3 : "efg"
¿Cómo puedo agregar 3 : "efg"a este diccionario existente?
swift
nsdictionary
Dharmesh Kheni
fuente
fuente

Respuestas:
Usted está utilizando
NSDictionary. A menos que explícitamente necesite que sea de ese tipo por alguna razón, le recomiendo usar un diccionario Swift.Puede pasar un diccionario Swift a cualquier función que espera
NSDictionarysin ningún trabajo adicional, porqueDictionary<>yNSDictionarysin problemas tender un puente entre sí. La ventaja de la forma nativa de Swift es que el diccionario usa tipos genéricos, por lo que si lo define conIntla clave yStringel valor, no puede usar claves y valores por error. (El compilador verifica los tipos en su nombre).Según lo que veo en su código, su diccionario lo utiliza
Intcomo clave yStringcomo valor. Para crear una instancia y agregar un elemento más adelante, puede usar este código:Si más tarde necesita asignarlo a una variable de
NSDictionarytipo, simplemente realice una conversión explícita:Y, como se mencionó anteriormente, si desea pasarlo a una función que espera
NSDictionary, páselo como está sin ningún tipo de conversión o conversión.fuente
Dictionaryobjeto y luego convertirlo alNSDictionaryfinal si es necesario. Maravilloso. Gracias."Antonio"tecla a1paradic[1]que regrese"abc, Antonio".puede agregar usando la siguiente manera y cambiar
DictionaryaNSMutableDictionaryfuente
Cannot assign to the result of this expressiondict["testval"] = "test".. Errorfatal error: unexpectedly found nil while unwrapping an Optional valueSé que esto podría llegar muy tarde, pero puede resultar útil para alguien. Entonces, para agregar pares de valores clave a los diccionarios en swift, puede usar el método updateValue (value:, forKey:) de la siguiente manera:
fuente
SWIFT 3 - XCODE 8.1
Entonces, tu diccionario contiene:
diccionario [1: Hola, 2: Hola, 3: Aloha]
fuente
dictionary[1] = "Hola"?Si su diccionario es
IntparaStringusted, puede hacer simplemente:Si te refieres a agregar elementos al valor del diccionario, una posible solución:
fuente
Swift 3+
Ejemplo para asignar nuevos valores al Diccionario. Debe declararlo como NSMutableDictionary:
fuente
En Swift, si está usando NSDictionary , puede usar
setValue:fuente
Dados dos diccionarios como a continuación:
Así es como puede agregar todos los elementos de dic2 a dic1 :
Saludos A.
fuente
.forEachlugar de.mapya que no necesitamos ningún arreglo mapeado de retornoDict.updateValueactualiza el valor de la clave existente del diccionario o agrega un nuevo par clave-valor nuevo si la clave no existe.Ejemplo-
Resultado-
fuente
Para los becarios que usan en
[String:Any]lugar de aDictionarycontinuación es la extensiónfuente
A partir de Swift 5, funciona la siguiente colección de códigos.
fuente
No hay función para agregar los datos en el diccionario. Simplemente asigna el valor a la nueva clave en el diccionario existente. automáticamente agregará valor al diccionario.
La salida será como
["Nombre": "Aloha", "usuario": "Aloha 2", "preguntas": "" ¿Eres mío "?"]
fuente
fuente
fuente
Para agregar nuevos elementos simplemente configure:
fuente
Hasta ahora, la mejor manera que he encontrado para agregar datos a un diccionario mediante el uso de una de las funciones de orden superior de Swift, es decir, "reducir". Siga el fragmento de código a continuación:
@ Dharmesh En su caso, será,
Avíseme si encuentra algún problema al usar la sintaxis anterior.
fuente
Swift 5 feliz codificación
fuente
Agregué la extensión del diccionario
puedes usar
cloneWithasífuente
si desea modificar o actualizar NSDictionary, primero escriba todo como NSMutableDictionary
entonces simplemente use
fuente