Comment puis-je 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 objects fictifs) où les règles de l’ARC sont un peu plus fragiles actuellement. Je me souviens avoir entendu qu’il y avait un moyen de désactiver l’ARC par fichier, même si je n’ai pas pu trouver cette option.

Est-ce possible? Comment désactiver ARC par fichier?

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

Vous ajoutez des indicateurs de compilateur dans Targets -> Build Phases -> Comstack Sources. Vous devez double-cliquer sur la colonne de droite de la ligne sous Drapeaux du compilateur . Vous pouvez également l’append à plusieurs fichiers en maintenant le bouton cmd enfoncé pour sélectionner les fichiers, puis en appuyant sur Entrée pour faire apparaître la boîte d’édition des indicateurs. (Notez que l’édition de plusieurs fichiers écrasera tous les indicateurs déjà présents.)

J’ai créé un exemple de projet qui a un exemple: https://github.com/jaminguy/NoArc

xcode

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

Désactiver ARC sur les fichiers MULTIPLES:

  1. Sélectionnez les fichiers souhaités à Target / Build Phases / Comstack Sources dans Xcode
  2. APPUYEZ SUR ENTRÉE
  3. Type -fno-objc-arc
  4. Appuyez sur Entrée ou Terminé

😉

entrer la description de l'image ici

Pour Xcode 4.3, le moyen le plus simple pourrait être: Edit / Refactor / Convert en objective-C ARC, puis cochez les fichiers que vous ne souhaitez pas convertir. Je trouve la même façon d’utiliser le drapeau de compilation ci-dessus.

C’est un moyen très simple de faire un fichier individuel sans arc.

Suivez les étapes ci-dessous:

Désactiver ARC sur un fichier individuel:

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

  2. Sélectionnez le fichier .m dont vous voulez qu’il soit NON-ARC PRESS ENTER Type -fno-objc-arc

Fichier non ARC pour l’indicateur de projet ARC: -fno-objc-arc

Fichier ARC à un indicateur de projet non ARC: -fobjc-arc

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

  1. ouvrir “Construire les phases” -> “Comstackr 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 en premier et en dernier)
  3. appuyez sur Entrée”
  4. coller -fno-objc-arc
  5. appuyez à nouveau sur “enter”
  6. profit!

Utilisez simplement le drapeau -fno-objc-arc dans Build Phases > Comstack Sources

  1. Sélectionnez le projet Xcode
  2. Aller aux cibles
  3. Sélectionnez la section des 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 souhaitez pas désactiver ARC et ajoutez -fno-objc-arc

Désactiver l'ARC pour un fichier particulier

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

Sélectionnez Cible -> Créer des phases -> Comstackr les sources -> Sélectionner un fichier (double-cliquez sur) -> 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:

entrer la description de l'image ici

utiliser -fno-objc-arc pour chaque fichier dans les phases de construction

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

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

S’il vous plaît suivez la capture d’écran et entrez -fno-objc-arc .

entrer la description de l'image ici

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 depuis le panneau Inspecteur. Ceci est essentiel si vous prévoyez d’utiliser Cloud Build. entrer la description de l'image ici

Ajouter un drapeau “-fno-objc-arc”.

Étapes simples à suivre: App> Cibles> Construire des phases> Comstackr des sources> Ajouter un indicateur après la classe “-fno-objc-arc”

Je pense que toutes les autres réponses expliquent comment désactiver MRC (Manual Reference Count) et activer ARC (Automatic Reference Count). Pour utiliser MRC (nombre de références manuelles), c.-à-d. Désactiver ARC (Automatic Reference Count) sur des fichiers MULTIPLES:

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

Utilisez simplement le drapeau -fno-objc-arc dans Build Phases> Comstack Sources en face des fichiers auxquels vous ne voulez pas que l’ARC soit appliqué.

  1. select project -> cibles -> build phases -> sources du compilateur
  2. select file -> drapeaux du compilateur
  3. append -fno-objc-arc

GO to App -> then Cibles -> Créer des phases -> Comstackr la source

Maintenant, sélectionnez le fichier dans lequel vous souhaitez désactiver ARC

collez cet extrait “-fno-objc-arc” Après avoir collé appuyez sur ENTREE

dans chaque fichier où vous souhaitez désactiver ARC.

Étape suivante pour activer désactiver ARC

Sélectionner un projet Xcode Aller aux cibles Sélectionnez la section Phases de construction Dans la section des phases de construction, sélectionnez les sources de compilation. Sélectionnez le fichier que vous ne souhaitez pas désactiver ARC et ajoutez -fno-objc-arc