Avançando os estudos do artigo passado, nós vamos agora trabalhar com o tipo de dicionário que permite a adição e a remoção de pares “chave-valor”: vamos estudar NSMutableDictionary
.
Requisitos
- Conhecer o trabalho com classes e propriedades;
- Conhecer o trabalho com métodos;
- Conhecer a classe
NSString
; - Conhecer a classe
NSNumber
; - Conhecer a classe
NSMutableArray
; - Conhecer a classe
NSDictionary
.
♫ Evolution of Music, da banda Pentatonix ♪
Conceitos
Assim como tivemos versões mutáveis e imutáveis de array, também temos essa dualidade de objetos no trabalho com dicionário. O NSDictionary
usado no texto passado é um tipo de dado que gera objetos imutáveis, logo, para podermos adicionar e apagar elementos, precisaremos da classe NSMutableDicionary
.
Como eu já expliquei as questões envolvidas com essas versões mutáveis e imutáveis no artigo de NSMutableArray
, vamos direto para a prática.
Prática
Vamos criar um novo projeto chamado Classe_NSMutableDictionary, com a seguinte atribuição inicial:
A primeira questão óbvia aqui é que, se o objeto é mutável, ele pode ser declarado vazio e receber registros posteriores sem problemas. O código a seguir ilustra o método de adição de registro:
Aqueles que já trabalharam com NSMutableArray
normalmente “chutariam” um addObject aqui, mas o método que adiciona um registro no MutableDictionary
é o setObject. Sua sintaxe é de primeiro definir o valor e, depois, a chave associativa. Tenham sempre em mente essa questão de par “chave-valor”, pois cada registro de um dicionário possui as duas partes.
Para testar a adição dos elementos, vamos usar um NSLog
exibindo o dicionário inteiro:
Uma vez adicionados elementos, já podemos usar os métodos para apagá-los.
O método removeObjectForKey é responsável por apagar um objeto a partir da chave associada a ele. A título de comparação, lembrem-se que o removeObjectAtIndex do NSMutableArray
usava o índice do objeto.
Para concluir também temos um método no espírito “apaga tudo”:
O método removeAllObjects apaga todos os pares “chave-valor” existentes no dicionário em questão. É de longe a forma mais fácil para “resetar” um dicionário, pois internamente o sistema varre toda a coleção “limpando” a memória dos valores alocados.
Assim como NSMutableArray
, os objetos NSMutableDictionary
são relativamente simples em seus códigos exclusivos. Eles herdam os recursos de suas classes-mãe (super class) e adicionam esses mecanismos para adição e remoção de valores. Em projetos interativos e com manipulações de bases de dados, será comum fazer uso dessas coleções mutáveis.
Para dúvidas ou debates sobre o tema, convido todos a acessarem o tópico oficial no fórum da Quaddro Treinamentos. E confira aqui todos os artigos que já publicamos no MacMagazine.
Um abraço e até a próxima!