Desativar a contagem automática de referência para alguns arquivos

Eu fiz o download do iOS 5 SDK e descobri que o ARC é um ótimo recurso do novo compilador da Apple. Por enquanto, muitos frameworks de terceiros não suportam o ARC. Posso usar o ARC para meu novo código e manter o código de retenção / release atual inalterado? O conversor ARC não funciona aqui, porque algumas estruturas, como JSONKit, não podem ser convertidas para ARC usando o conversor.

Editar:

A resposta é adicionar -fno-objc-arc aos sinalizadores do compilador para os arquivos que você não deseja ARC. No Xcode 4, você pode fazer isso em seu destino -> Fases de compilation -> Fontes de compilation.

Os documentos públicos do ARC , embora não sejam claros diretamente nesse ponto, parecem sugerir que, contanto que cada class seja toda ARC ou toda gerenciada manualmente, as classs podem ser integradas em um único programa.

Você só não pode misturar ARC e não-ARC em uma única class; o documento diz que o envio de retain , release , autorelease ou retainCount mensagens por qualquer meio (incluindo timeres e @selector atrasadas, que usam @selector ) é banido no código ARC. Então você não pode fazer o ARC não em uma class ARC (porque as mensagens necessárias são banidas) e você não pode fazer o ARC em uma class não-ARC (porque o ARC adiciona elementos de syntax que são inválidos sem o ARC).

O mesmo documento é um pouco mais claro sobre se você pode integrar bibliotecas / estruturas não-ARC em um programa ARC: Sim. Ele não menciona se você pode usar bibliotecas / frameworks ARC em um programa onde todo o seu código é não-ARC, mas considerando todos os itens acima, a implicação parece ser sim.

Não é muito intuitivo como desabilitar o ARC em arquivos MÚLTIPLOS , por um tempo eu fui fazer um por um até descobrir como fazer isso.

  1. Selecione os arquivos desejados no Target / Build Phases / Compile Sources no Xcode (CMD + clique ou Shift + clique)
  2. PRESSIONAR ENTER (clique duplo irá redefinir a seleção, por isso não funciona)
  3. Digite -fno-objc-arc
  4. Pressione Enter ou Concluído

Se você quiser desabilitar Automatic Reference Counting para alguns arquivos, então é realmente simples de fazer, basta seguir os passos. Você adiciona sinalizadores de compilador em Targets -> Build Phases -> Compile Sources.

xcode

A bandeira usada é -fno-objc-arc pressione enter depois de escrevê-la. Você tem que clicar duas vezes na coluna à direita da linha em Flags do Compilador. Espero que ajude Obrigado 🙂

É possível desabilitar o ARC para arquivos individuais, adicionando o sinalizador de compilador -fno-objc-arc para esses arquivos.

Como posso desativar o ARC para um único arquivo em um projeto?