web-dev-qa-db-fra.com

Comment désactiver ARC pour un seul fichier dans un projet?

J'utilise ARC avec succès dans mon projet. Cependant, j'ai rencontré quelques fichiers (par exemple, dans des tests unitaires et des objets fictifs) où les règles d'ARC sont un peu plus fragiles à l'heure actuelle. Je me souviens avoir entendu dire qu'il y avait un moyen de désactiver ARC par fichier, bien que je ne sois pas parvenu à trouver cette option.

Est-ce possible? Comment désactiver ARC sur chaque fichier?

1325
casademora

Il est possible de désactiver ARC pour des fichiers individuels en ajoutant l'indicateur de compilation -fno-objc-arc pour ces fichiers.

Vous ajoutez des indicateurs de compilateur dans Cibles -> Phase de construction -> Sources de compilation. Vous devez double-cliquer sur la colonne de droite de la ligne sous Drapeaux du compilateur . Vous pouvez également l'ajouter à plusieurs fichiers en maintenant la touche cmd enfoncée pour sélectionner les fichiers, puis en appuyant sur Entrée pour afficher la zone d'édition des indicateurs. (Notez que la modification de plusieurs fichiers écrasera tous les indicateurs déjà présents.)

J'ai créé un exemple de projet comportant un exemple: https://github.com/jaminguy/NoArc

xcode

Voir cette réponse pour plus d'infos: Désactiver le comptage automatique des références pour certains fichiers

2156
jaminguy

Désactiver ARC sur Plusieurs fichiers:

  1. Sélectionnez les fichiers souhaités dans Target/Build Phases/Compile Sources in Xcode.
  2. PRESS ENTER
  3. Type - - fno-objc-arc
  4. Appuyez sur Entrée ou Terminé

;)

enter image description here

460
Tibidabo

Pour Xcode 4.3, le moyen le plus simple pourrait être: Éditer/Refactoriser/Convertir en objectif-C ARC, puis cochez les fichiers que vous ne voulez pas convertir. Je trouve de cette façon la même chose que d’utiliser l’indicateur de compilation ci-dessus.

45
Jingjie Zhan

C'est un moyen très simple de créer un fichier individuel sans arc.

Suivez les étapes ci-dessous:

Désactiver ARC sur un fichier individuel:

  1. Sélectionnez les fichiers souhaités dans Target/Build Phases/Compile Sources in Xcode.

  2. Sélectionnez le fichier .m que vous voulez transformer en non-ARC PRESS ENTER Type - fno-objc-arc

Fichier non ARC vers indicateur de projet ARC: -fno-objc-arc

Fichier ARC vers indicateur de projet non ARC: -fobjc-arc

37
Dipak Narigara

Remarque: si vous voulez désactiver ARC pour de nombreux fichiers, vous devez:

  1. ouvrir "Phase de construction" -> "Compiler les sources"
  2. sélectionner des fichiers avec "left_mouse" + "cmd" (pour les fichiers séparés) ou + "shift" (pour les fichiers groupés - sélectionner le premier et le dernier)
  3. appuyez sur Entrée"
  4. coller -fno-objc-arc
  5. appuyez sur "entrer" à nouveau
  6. profit!
35
digipeople

Il suffit d'utiliser l'indicateur -fno-objc-arc dans Build Phases> Compile Sources

22
Rahul Gupta
  1. Sélectionnez un projet Xcode
  2. Aller aux cibles
  3. Sélectionnez la section phases de construction
  4. Dans la section des phases de construction, sélectionnez les sources de compilation.
  5. Sélectionnez le fichier que vous ne voulez pas désactiver ARC et ajoutez -fno-objc-arc

Disable ARC for a particular file

13
user2538944

Il est possible de désactiver ARC (Automatic Reference Counting) pour un fichier particulier dans Xcode.

Sélectionnez Target -> Build Phases -> Compile Sources -> Select File (double-cliquez) -> Ajouter "-fno-objc-arc" à la fenêtre contextuelle.

J'avais rencontré cette situation en utilisant des fichiers "Reachibility".

Ceci est montré dans la figure ci-dessous:

enter image description here

13
Jayprakash Dubey

utilisez -fno-objc-arc pour chaque fichier lors des phases de construction

11
Manish Jain

Les quatre étapes obligatoires comme expliqué dans ce vidéo

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

Suivez simplement la capture d'écran et entrez - fno-objc-arc .

enter image description here

8

Si vous utilisez Unity, vous n'avez pas besoin de changer cela dans Xcode, vous pouvez appliquer un indicateur de compilation dans les métadonnées du ou des fichiers spécifiques, directement dans Unity. Il suffit de les sélectionner dans le panneau Projet et de les appliquer à partir du panneau Inspecteur. Ceci est essentiel si vous envisagez d’utiliser Cloud Build . enter image description here

6
greenland

Ajoutez le drapeau “-fno-objc-arc”.

Étapes simples à suivre: App> Cibles> Phases de construction> Sources de compilation> Ajouter un indicateur après la classe “-fno-objc-arc”

5
Manoj Chandel

Je pense que toutes les autres réponses expliquent comment désactiver le décompte manuel de références (MRC) et activer le décompte automatique de références (ARC). Pour utiliser le décompte manuel (MRC), c’est-à-dire la désactivation du décompte automatique (ARC) sur plusieurs fichiers:

  1. Sélectionnez les fichiers souhaités dans Target/Build Phases/Compile Sources in Xcode.
  2. APPUYEZ SUR ENTRÉE
  3. Type -fobjc-arc
  4. Appuyez sur Entrée ou Terminé
5
Vin

Utilisez simplement l'indicateur -fno-objc-arc dans Build Phases> Compile les sources devant les fichiers auxquels vous ne voulez pas que ARC soit appliqué.

2
C_compnay