Eu estava usando um NSMutableArray
e percebi que usar um dicionário é muito mais simples para o que estou tentando alcançar.
Quero salvar uma chave como um NSString
e um valor como um int
no dicionário. Como isso é feito? Em segundo lugar, qual é a diferença entre mutável e um dicionário normal?
iphone
objective-c
nsdictionary
sistema
fonte
fonte
Ao definir, você usaria o
setValue:(id)value forKey:(id)key
método doNSMutableDictionary
objeto:Ou no moderno Objective-C:
A diferença entre mutável e "normal" é, bem, mutabilidade. Ou seja, você pode alterar o conteúdo de
NSMutableDictionary
(eNSMutableArray
) enquanto não pode fazer isso com "normal"NSDictionary
eNSArray
fonte
[{image: "/path/to/img/1.jpg", data: "foo bar 1"}, {image: "/path/to/img/2.jpg", data: "foo bar 2"}, ..., {image: "/path/to/img/N.jpg", data: "foo bar N"}]
Sempre que a matriz é declarada, então só temos que adicionar os valores-chave em NSDictionary como
não podemos adicionar ou remover os valores-chave neste NSDictionary
Onde, como em NSMutableDictionary, podemos adicionar os objetos após a inicialização do array também usando este método
para remover o valor-chave, temos que usar o seguinte código
fonte
Versão atualizada
Objective-C
Crio:
Mudança:
A sintaxe abreviada é chamada
Objective-C Literals
.Rápido
Crio:
Mudança:
fonte
Você quer perguntar é "qual é a diferença entre uma matriz ou dicionário mutável e não mutável." Muitas vezes, diferentes termos são usados para descrever coisas que você já conhece. Nesse caso, você pode substituir o termo "mutável" por "dinâmico". Assim, um dicionário ou matriz mutável é aquele que é "dinâmico" e pode mudar em tempo de execução, enquanto um dicionário ou matriz não mutável é aquele que é "estático" e definido em seu código e não muda em tempo de execução (em outras palavras , você não irá adicionar, excluir ou possivelmente classificar os elementos.)
Sobre como isso é feito, você está nos pedindo para repetir a documentação aqui. Tudo que você precisa fazer é pesquisar no código de amostra e na documentação do Xcode para ver exatamente como isso é feito. Mas a coisa mutável também me abalou quando eu estava aprendendo pela primeira vez, então vou te dar essa!
fonte
Para referência, você também pode utilizar
initWithDictionary
para iniciar oNSMutableDictionary
com um literal:fonte