Blog da Softblue


Este artigo foi criado por Andre Milani.
Conheça o currículo completo do instrutor clicando aqui.

Uso do ARC no Xcode a partir do iOS 5

Publicado em 03/10/2012 às 15:16:29 horas.

Compartilhe:    

O gerenciador ARC já não é mais novidade no mundo de desenvolvimento para o iOS, mas optei por criar um artigo resumido com algumas informações depois que vários alunos e leitores meus entraram em contato com algumas dúvidas sobre este recurso.

Para facilitar a vida do desenvolvedor, e garantir um melhor gerenciamento de memória, a Apple criou o ARC (Automatic Reference Counting), um gerenciador de memória que irá manter os objetos na memória e liberá-los quando não estiverem mais sendo necessários. Em outra palavras, as operações de liberação de memória que antes deviam ser criadas pelo programador, agora ficam a cargo do compilador.

Vale a pena citar que o ARC não é exatamente um GB (Garbage Collector). Ambos tem focos similares, mas o funcionamento interno é diferente. O ARC analisa (em tempo de execução) o código do aplicativo e realiza as tarefas de liberar ou não os objetos de acordo com sua análise.

O que muda e como muda
Ao utilizar o ARC os comandos que antes eram necessários para a liberação de memória de seus objetos e variáveis tornam-se desnecessários. Na verdade, tornam-se opcionais, uma vez que o ARC dá a liberdade para o programador de liberar manualmente os objetos da memória caso necessite realizar esta ação.

O ARC automatiza o uso das instruções retain, release e autorelease. Basicamente, antes do ARC era necessário liberar os objetos por meio do uso da instrução release no método dealloc, e também atribuir o valor nil para as variáveis em questão no método viewDidUnload, como mostra o exemplo a seguir:

- (void)dealloc
{
    [myLabel release];
    [myButtonOne release];
    [myButtonTwo release];

    [super dealloc];
}

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;

    self.myLabel = nil;
    self.myButtonOne = nil;
    self.myButtonTwo = nil;
}

A partir do uso do ARC, estas ações não são mais necessárias, e nenhuma outra precisa ser feita. Apenas programe o seu aplicativo! Não é mais necessário utilizar a instrução release ou atribuir nil nos métodos apresentados anteriormente. A única ação necessária para o desenvolvedor é habilitar o uso do ARC em seu projeto.

Habilitando o ARC em um projeto novo

Ao criar um novo projeto no Xcode, habilite a opção Use Automatic Reference Counting nas opções de criação do projeto, como apresenta a figura a seguir:

É simples assim! Só com isso o ARC já irá gerenciar a memória da sua aplicação.

Habilitando o ARC em um projeto já existente

É possível converter um projeto já existente para utilizar o ARC, por meio da opção Edit – Refactor – Convert to Objective-C ARC... como mostra a figura a seguir:

Uma tela surgirá para que você habilite o aplicativo e códigos a ser convertido para o uso do ARC, como mostra a figura abaixo. Marque as opções e clique em Check.

Em seguida o Xcode irá apresentar as alterações no código para você validar, e também irá questioná-lo a respeito da criação de um snapshot do projeto caso queira retornar ao ponto antes da conversão para o ARC, como mostra a figura abaixo. Clique em Enable e seu projeto estará convertido para utilizar o ARC.

O ARC está disponível desde a versão 5 do iOS, e é mantido nas versões mais atuais. É um excelente recurso, pode e deve ser utilizado sempre que possível.

Comentários

Eu estava realmente pensando que, nos códigos novos, não tenho visto chamadas para dealloc nem nada parecido.
Muito bom o artigo.

Valeu

Enviado em 04/11/2012 às 15:51:42 horas, por Alexandre


Muito esclarecedor
Valeu

Enviado em 04/10/2012 às 10:05:01 horas, por Alessandro Brassanini

Mailing List

Cadastre o seu e-mail para receber notícias e informações sobre novos cursos, atualizações e outras novidades da Softblue!

Diferenciais

Liberdade total
Estude quando e como quiser. Disponibilidade do conteúdo 24h por dia, 7 dias por semana.
Matrícula não expira
Pagamento único, sem mensalidades, e acesso vitalício a todo o conteúdo, mesmo após a conclusão do curso.
Cursos sempre atualizados
Acesso às atualizações dos cursos de forma automática.
Tire suas dúvidas
Suporte eficiente para esclarecer suas dúvidas no decorrer do curso.
Padrão de qualidade
Atendimento diferenciado e material de alta qualidade, feito por quem entende do assunto.

Certificado

Insira o código do certificado que deseja consultar:

Pagamento





Conheça todas as nossas formas de pagamento.


             Cursos  |   Perguntas  |   Sobre nós  |   Sorteios  |   Blog  |   Política de Privacidade  |   Contato Desde 2003.    
Todos os direitos reservados ®    
CNPJ 06.860.085/0001-64