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




objective-c xcode (12)

  1. Selecione o projeto Xcode
  2. Vá para alvos
  3. Selecione a seção Construir fases
  4. Dentro da seção de fases de compilação, selecione as fontes de compilação.
  5. Selecione o arquivo que você não deseja desabilitar o ARC e adicione -fno-objc-arc

Eu estou usando o ARC com sucesso no meu projeto. No entanto, eu encontrei alguns arquivos (por exemplo, em testes de unidade e objetos simulados), onde as regras do ARC são um pouco mais frágeis no momento. Lembro-me de ouvir que havia uma maneira de desabilitar o ARC em uma base por arquivo, embora não tenha conseguido encontrar essa opção.

Isso é possível? Como desabilito o ARC em uma base por arquivo?


  1. selecione projeto -> destinos -> construir fases -> fontes do compilador
  2. selecione arquivo -> sinalizadores de compilador
  3. add -fno-objc-arc

É uma maneira muito simples de fazer um arquivo individual não-arco.

Siga os passos abaixo:

Desativar o ARC no arquivo individual:

  1. Selecione os arquivos desejados no Target / Build Phases / Compile Sources no Xcode

  2. Selecione o arquivo .m que você deseja que seja NON-ARC PRESSIONE Digite Type -fno-objc-arc

Arquivo não ARC para o sinalizador de projeto ARC: -fno-objc-arc

Arquivo ARC para sinalizador de projeto não ARC: -fobjc-arc


Acho que todas as outras respostas estão explicando como desabilitar o MRC (Manual Reference Count) e habilitando o ARC (Automatic Reference Count). Para usar o MRC (contagem manual de referência), ou seja, desabilitar o ARC (contagem automática de referência) em arquivos MULTIPLE:

  1. Selecione os arquivos desejados no Target / Build Phases / Compile Sources no Xcode
  2. PRESSIONE ENTER
  3. Digite-fobjc-arc
  4. Pressione Enter ou Concluído

Apenas use o -fno-objc-arc em Build Phases > Compile Sources


Basta usar o sinalizador -fno-objc-arc em Build Phases> Compile Sources na frente dos arquivos para os quais você não deseja que o ARC seja aplicado.


Nota: se você quiser desabilitar o ARC para muitos arquivos , você deve:

  1. aberto "Construir fases" -> "Compilar fontes"
  2. selecione arquivos com "left_mouse" + "cmd" (para arquivos separados) ou + "shift" (para arquivos agrupados - selecione primeiro e último)
  3. pressione Enter"
  4. pasta -fno-objc-arc
  5. pressione "enter" novamente
  6. lucro!

Os quatro passos obrigatórios, conforme explicado neste video

    //1. Select desired files
    //2. Target/Build Phases/Compile Sources
    //3. Type -fno-objc-arc
    //4. Done

Por favor, apenas siga a tela e digite -fno-objc-arc .


Se você estiver usando o Unity, você não precisa mudar isso no Xcode, você pode aplicar um sinalizador de compilação nos metadados para o (s) arquivo (s) específico (s), diretamente dentro do Unity. Basta selecioná-los no painel Projeto e aplicar no painel Inspetor. Isso é essencial se você planeja usar o Cloud Build.


use -fno-objc-arc para cada arquivo nas fases de construção


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

Você adiciona sinalizadores de compilador em Destinos -> Fases de compilação -> Fontes de compilação. Você tem que clicar duas vezes na coluna à direita da linha em Flags do Compilador . Você também pode adicioná-lo a vários arquivos, mantendo pressionado o botão cmd para selecionar os arquivos e, em seguida, pressionando Enter para exibir a caixa de edição de sinalização. (Observe que a edição de vários arquivos sobrescreverá qualquer sinalizador que já tenha.)

Eu criei um projeto de exemplo que tem um exemplo: https://github.com/jaminguy/NoArc

Veja esta resposta para mais informações: Desativar a contagem automática de referência para alguns arquivos





manual-retain-release