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
NSDictionary
sin ningún trabajo adicional, porqueDictionary<>
yNSDictionary
sin 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 conInt
la clave yString
el 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
Int
como clave yString
como 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
NSDictionary
tipo, 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
Dictionary
objeto y luego convertirlo alNSDictionary
final si es necesario. Maravilloso. Gracias."Antonio"
tecla a1
paradic[1]
que regrese"abc, Antonio"
.puede agregar usando la siguiente manera y cambiar
Dictionary
aNSMutableDictionary
fuente
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Errorfatal error: unexpectedly found nil while unwrapping an Optional value
Sé 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
Int
paraString
usted, 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
.forEach
lugar de.map
ya que no necesitamos ningún arreglo mapeado de retornoDict.updateValue
actualiza 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 aDictionary
continuació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
cloneWith
asífuente
si desea modificar o actualizar NSDictionary, primero escriba todo como NSMutableDictionary
entonces simplemente use
fuente