Como um programador de iPhone iniciante, qual é a prática recomendada para escrever aplicativos a serem usados com iOS 5 ou versões anteriores? Especificamente, devo continuar usando a liberação / retenção de dados ou devo ignorar isso? Isso importa?
109
Respostas:
Você decide. Você pode escrever aplicativos usando ARC (contagem automática de referência), e o Xcode irá escrever um "código de colagem" para permitir que seus aplicativos habilitados para ARC sejam executados no iOS 4, sem necessidade de modificações. No entanto, certas coisas não funcionarão e, mais notavelmente, muitas bibliotecas que você deseja usar irão (às vezes) gerar inúmeros erros e você não poderá usá-los até que os desenvolvedores liberem uma atualização compatível com ARC.
Edit : Eu descobri recentemente que você pode desligar o ARC em uma base por arquivo. Veja a resposta do pixelfreak . Portanto, meu conselho continua válido, mas agora as bibliotecas de terceiros não precisam ser atualizadas para funcionar com o ARC.
Aqui está o que a Apple diz sobre a desativação do ARC para arquivos específicos:
Veja o guia de transição completo aqui .
fonte
-fno-objc-arc
JSONKit
, por exemplo. Tente fazer isso por meio da verificação ARC. Você verá o que quero dizer. ;)Para quem ainda está curioso sobre como desligar o ARC em arquivos individuais, aqui está o que eu fiz:
Build Phases > Compile Sources
Não sei se essa é a forma recomendada, mas funciona para mim.
PS: Reuni essas informações em clang.llvm.org aqui, que estão acessíveis ao público, portanto, não estão sob o NDA.
fonte
O iOS 5 ainda está sob um NDA e provavelmente estará até o lançamento da versão pública. Se você tiver uma conta de desenvolvedor, vá até os Fóruns de Desenvolvedores da Apple e pergunte lá.
Para versões anteriores, você deve contar as referências e retê-las e liberá-las de acordo. Confira o guia de gerenciamento de memória .
Edit: Aqui está uma especificação pública para contagem automática de referência e uma citação da página pública do iOS 5 :
fonte
Os detalhes são leves / sob NDA no momento, mas a Apple implementou contagem automática de referência (ARC) no iOS 5, conforme detalhado aqui: http://developer.apple.com/technologies/ios5/
Se você desenvolver um novo aplicativo no Xcode 4 com o iOS 5 SDK, poderá ignorar com segurança a contagem de retenções / liberações.
[editar] sudo rm -rf apresenta um bom argumento; libs de terceiros podem ser significativamente afetados
fonte
Ninguém mencionou SystemConfiguration.framework ? Não se esqueça de colocá-lo no Frameworks . Eu miseravelmente passei várias horas para perceber isso.
fonte
Certamente é escolha do desenvolvedor ou da equipe. O ARC (contador automático de referência) tornou as coisas um pouco mais fáceis, gerenciando automaticamente a memória para você. Ele irá liberar, reter e desalocar quando apropriado. Eu acredito que você deve ganhar experiência no gerenciamento de memória por conta própria, de preferência em um aplicativo de teste, se ainda não o fez. Outra coisa a considerar é se seu aplicativo depende de bibliotecas de terceiros, que, se não convertidas para ARC, impedirão que seu aplicativo seja compilado. A escolha depende obviamente da situação em questão.
fonte
definir sinalizador como -fno-objc-arc em configurações do projeto> Fases de construção> Fontes de compilação
fonte