O melhor pedaço da Maçã.
MM News

Receba os nossos principais artigos diariamente, por email.

Quaddro + MacMagazine: programando em Objective-C — classe NSMutableArray

Declaração - MutableArray

Continuando o estudo do último texto, vamos agora trabalhar com um tipo mais completo de array, a classe NSMutableArray.

Publicidade

Pré-requisitos

Take a Look Around, da banda Limp Bizkit

Conceitos

No artigo passado eu comentei que ensinaria o trabalho com o array que permite mudança de conteúdo. A questão é bem simples: em Objective-C existem diversos tipos de dados que possuem versões mutáveis e imutáveis. Isso quer dizer que alguns tipos de dados podem ter adição e remoção de conteúdo, enquanto outros não possuem essa característica.

Eu não estou falando de troca de valores, já que a reatribuição é permitida; estou falando de, por exemplo, adicionar mais dados aos que já foram alocados. E nesse contexto podemos dizer que os objetos NSArray são imutáveis pois eles não podem ter registros adicionados ou apagados. Sendo assim, usamos a classe NSMutableArray quando nossas coleções precisarem ter essa capacidade.

Publicidade

Como sempre, vamos à prática para facilitar a compreensão.

Prática

Vamos criar um novo projeto chamado Classe_NSMutableArray e fazer a seguinte definição:

Declaração - MutableArray

Já começo mostrando uma abordagem que vocês só poderão usar com NSMutableArray — uma vez que um NSArray simples não pode ter adição de registros, ele não deve ser declarado vazio. Já um MutableArray, por ter essa capacidade de receber elementos depois de criado, pode tranquilamente ser declarado sem nenhum objeto inicial.

Publicidade

Tendo nossa coleção criada, vamos agora adicionar alguns elementos.

Método - addObject

É o método addObject que nos permite adicionar elementos em um objeto NSMutableArray. Nesse código, eu inseri três registros no array que estava vazio. Uma observação importante é que, com ele, só podemos adicionar um objeto por vez. Porém, esse registro pode ser um array — então as possibilidades são infinitas.

Publicidade

Agora tendo alguns elementos em nossa coleção, vamos exibir o MutableArray em um log:

Log - Array

A impressão de um objeto array no log exibe todos os registros do array. Notem também que o conteúdo do array é exibido dentro de parênteses.

Uma vez que nós tenhamos os registros armazenados no NSMutableArray, a operação de acesso aos elementos é a mesma do NSArray, até porque a classe NSMutableArray herda todas as características de NSArray.

Se por um lado temos recursos para adicionar elementos, por outro também existem recursos para apagar registros.

RemoveObject

Existem diversas opções para remover registros de um objeto NSMutableArray. O método removeObjectAtIndex usa como referência a posição do elemento, enquanto o método removeObject baseia-se no próprio registro que será removido. A título de informação, também existe o método removeAllObjects, o qual limpa completamente os registros de um NSMutableArray.

Em linhas gerais, as operações mais comuns em um objeto NSMutableArray são adições e remoções de elementos. Existem outros recursos como substituições e ordenações, mas a pesquisa por eles faz parte do estudo de vocês.

Uma vez que vocês tenham visto e testado as diferenças entre um array mutável e um imutável, a recomendação é sempre analisar bem o requisito antes de começar seu código. Um objeto imutável é, em linhas gerais, mais indicado por consumir menos recursos do sistema, mas em algumas situações não existe como evitá-los. Então a dica é sempre analisar se a sua lista de objetos precisará de alterações durante seu código.

Finalizo, como sempre, deixando o espaço para dúvidas e debates no tópico oficial do fórum da Quaddro Treinamentos. E confira aqui todos os artigos que já publicamos no MacMagazine.

Um abraço e até a próxima!

Ver comentários do post

Artigo Anterior
MacBook Air com teclado iluminado

Ares de novidade — um review do novo MacBook Air de 13 polegadas

Próximo Artigo
Gangstar Vegas

Gameloft amplia famosa série de jogos com o recém-lançado Gangstar Vegas para iOS

Posts Relacionados