Se eu decidir atualizar para o iOS 5, preciso remover todas as instruções [myObject reter] e [myObject release] do meu código?
Sim, mas o XCode 4.2 inclui uma nova ferramenta "Migrar para Objective-C ARC" (no menu Editar-> Refatorar), que faz isso por você. Chamar dealloc é uma história diferente. Conforme mencionado nos comentários, a referência de clang afirma que você deve manter seu método desalocado:
Justificativa: mesmo que o ARC destrua as variáveis de instância automaticamente, ainda existem razões legítimas para escrever um método desalocado, como liberar recursos não retidos. Deixar de chamar [super dealloc] nesse método é quase sempre um bug.
Você ativa o ARC usando um novo sinalizador de compilador -fobjc-arc. O ARC é suportado no Xcode 4.2 para Mac OS X v10.6 e v10.7 (aplicativos de 64 bits) e no iOS 4 e iOS 5. (Referências fracas não são suportadas no Mac OS X v10.6 e iOS 4). Não há suporte para ARC no Xcode 4.1.
-
Se eu desenvolver um novo aplicativo para iOS 5 usando o ARC, precisarei implementar algum tipo de verificação de "retro-compatibilidade"? Ou seja: precisarei verificar a versão do iOS e chamar reter e liberar de acordo? Então, basicamente, o ARC está disponível para todas as versões do iOS ou apenas para o iOS 5?
Não, porque o ARC faz sua mágica no tempo de compilação e não no tempo de execução.
Em vez de você precisar se lembrar de quando usar reter, liberar e liberar automaticamente, o ARC avalia os requisitos de vida útil de seus objetos e insere automaticamente as chamadas de método apropriadas para você no momento da compilação. O compilador também gera métodos de desalocação apropriados para você.
Mais informações sobre o ARC: http://clang.llvm.org/docs/AutomaticReferenceCounting.html