Uma array é um objeto que contém coleções de outros objetos. Array em Objective-C são tratados com NSArray. A classe NSArray contém uma série de métodos especificamente projetados para facilitar a criação e manipulação de matrizes. Ao contrário de algumas linguagens de programação orientada a objetos (C # sendo um exemplo), os objetos contidos em uma matriz não têm todos de ser do mesmo tipo. Tipos de Arrays Arrays em Objective-C podem ser encontrados de duas maneiras, mutáveis ​​e imutáveis (NSArray, NSMutableArray)​​. O conteúdo dos arrays imutável não pode ser alterado após o array ser iniciado. Arrays são imutáveis quando ​​instanciado da classe NSArray. Array mutável são criadas usando a classe NSMutableArray (uma subclasse de NSArray) e pode ser modificado depois de terem sido criados e inicializados. NSArray Show me the code!
NSArray *array = [[NSArray alloc] init];
No código acima criamos um array imutável vazio, e devido a isso não conseguimos adicionar objetos a ele, sempre será um array vazio. A classe NSArray contém um método de classe chamado arrayWithObjects que podem ser chamados a criar um novo array e inicializá-lo com elementos. Por exemplo:
NSArray *basket = [NSArray arrayWithObjects: @"Apple", @"Banana", @"Pineapple", @"Orange", nil]
Perceba que cada objecto adicionado é separado apenas por virgula (@"Apple", @"Banana",@"Pineapple", @"Orange", nil) e se repararmos o ultimo objeto do array é nil (nulo). Diferente de outras linguagens devemos colocar nil para que os métodos chamados possam saber onde o fim da array. NSMutableArray Podemos criar Arrays mutáveis da mesma maneira que criamos um array não mutável, por exemplo:
NSMutableArray *array = [[NSMutableArray alloc] init];
a diferença é que quando for necessário podemos adicionar objetos a esse array.
[array addObject:@"item 1"];
[array addObject:@"item 2"];
[array addObject:@"item 3"];
...
Uma coisa muito interessante do NSMutableArray é um método chamado insertObject que é seguido do parametro atIndex, ou seja podemos adicionar objetos em nosso arrays em índices determinados por nós. Por exemplo se eu pegar o array criado acima que contem 3 itens e adicionar
[array insertObject: @"item 10" atIndex:1];
a saída ficaria da seguinte maneira
Item 1
Item 10
Item 2
Item 3
...
A sub classe NSMutableArray é muito poderosa e nos permite trabalhar "livremente" com arrays podendo adicionar e remover objetos. Vamos ver alguns métodos nos exemplos de como remover objetos de arrays.
NSMutableArray *basket = [NSMutableArray arrayWithObjects: @"Apple", @"Banana", @"Pineapple", @"Orange", nil]
removeObjectAtIndex: remove um objeto de um indice específico
[basket removeObjectAtIndex:3];
removeObject remove a primeira instância do objeto passado como parametro
[basket removeObject:@"Apple"];
removeAllObjects remove todos os objetos do array
[basket removeAllObjects];
para saber mais sobre os métodos da sub class NSMutableArray recomendo ver a referência da classe aqui Espero que tenham gostado do post. Para galera que esta acompanhando o blog fiquem atentos que em breve teremos grandes novidades. Abraço

Atualiazação

Caso queira ver na pratica como trabalhar com Arrays acesse meu novo projeto iOSDevSpot http://www.iosdevspot.com/casts/trabalhando-com-arrays