Eu tenho um dicionário simples que é definido como:
var dict : NSDictionary = [ 1 : "abc", 2 : "cde"]
Agora eu quero adicionar um elemento neste dicionário: 3 : "efg"
Como posso acrescentar 3 : "efg"
a este dicionário existente?
swift
nsdictionary
Dharmesh Kheni
fonte
fonte
Respostas:
Você está usando
NSDictionary
. A menos que você precise explicitamente desse tipo por algum motivo, recomendo o uso de um dicionário Swift.Você pode passar um dicionário Swift para qualquer função esperando
NSDictionary
sem qualquer trabalho extra, porqueDictionary<>
eNSDictionary
perfeitamente colmatar um ao outro. A vantagem da maneira Swift nativa é que o dicionário usa tipos genéricos; portanto, se você o definirInt
como chave eString
como valor, não poderá usar por engano chaves e valores de tipos diferentes. (O compilador verifica os tipos em seu nome.)Com base no que vejo no seu código, seu dicionário usa
Int
como chave eString
como valor. Para criar uma instância e adicionar um item posteriormente, você pode usar este código:Se você precisar atribuí-lo posteriormente a uma variável do
NSDictionary
tipo, basta fazer uma conversão explícita:E, como mencionado anteriormente, se você deseja passá-lo para uma função que está esperando
NSDictionary
, passe-o como está sem qualquer conversão ou conversão.fonte
Dictionary
objeto e, em seguida, convertê-loNSDictionary
no final, se necessário. Maravilhoso. Obrigado."Antonio"
chave1
paradic[1]
retornar"abc, Antonio"
.você pode adicionar usando da seguinte maneira e alterar
Dictionary
paraNSMutableDictionary
fonte
Cannot assign to the result of this expression
dict["testval"] = "test"
.. Errofatal error: unexpectedly found nil while unwrapping an Optional value
Eu sei que isso pode estar chegando muito tarde, mas pode ser útil para alguém. Portanto, para anexar pares de valores-chave a dicionários no swift, você pode usar o método updateValue (value:, forKey:) da seguinte maneira:
fonte
SWIFT 3 - XCODE 8.1
Portanto, seu dicionário contém:
dicionário [1: Hola, 2: Olá, 3: Aloha]
fonte
dictionary[1] = "Hola"
?Se o seu dicionário é
Int
paraString
você, basta:Se você quer adicionar elementos ao valor do dicionário, uma possível solução:
fonte
Swift 3+
Exemplo para atribuir novos valores ao Dicionário. Você precisa declará-lo como NSMutableDictionary:
fonte
No Swift, se você estiver usando o NSDictionary , poderá usar
setValue
:fonte
Dados dois dicionários, como abaixo:
Aqui está como você pode adicionar todos os itens de dic2 a dic1 :
Saúde A.
fonte
.forEach
em vez de.map
como nós não precisa de nenhum retorno variedade mapeadosDict.updateValue
atualiza o valor da chave existente do dicionário ou adiciona um novo par de valores-chave se a chave não existir.Exemplo-
Resultado-
fonte
Para os bolsistas que usam em
[String:Any]
vez deDictionary
abaixo está a extensãofonte
A partir do Swift 5, a seguinte coleção de códigos funciona.
fonte
Não há função para acrescentar os dados no dicionário. Você acabou de atribuir o valor à nova chave no dicionário existente. agregará automaticamente valor ao dicionário.
A saída será como
["Nome": "Aloha", "usuário": "Aloha 2", "perguntas": "" Você é meu "?"]
fonte
fonte
fonte
Para adicionar novos elementos, basta definir:
fonte
Até agora, a melhor maneira que encontrei de anexar dados a um dicionário usando uma das funções de ordem superior do Swift, ou seja, "reduzir". Siga o trecho de código abaixo:
@ Dharmesh No seu caso, será,
Entre em contato se encontrar algum problema ao usar a sintaxe acima.
fonte
Codificação feliz do Swift 5
fonte
Eu adicionei extensão Dictionary
você pode usar
cloneWith
assimfonte
se você deseja modificar ou atualizar o NSDictionary, primeiro digite-o como NSMutableDictionary
então simplesmente use
fonte