183 votes

Désactiver le comptage automatique des références pour certains fichiers

J'ai téléchargé le SDK iOS 5 et j'ai constaté que l'ARC est une excellente fonctionnalité du nouveau compilateur Apple. Pour l'instant, de nombreux frameworks tiers ne prennent pas en charge ARC. Puis-je utiliser ARC pour mon nouveau code et garder le code actuel de retain/release inchangé ? Le convertisseur ARC ne fonctionne pas ici, car certains frameworks, tels que JSONKit, ne peuvent pas être convertis en ARC à l'aide du convertisseur.

Editar:

La réponse est d'ajouter -fno-objc-arc aux drapeaux du compilateur pour les fichiers que vous ne voulez pas ARC. Dans Xcode 4, vous pouvez faire cela sous votre cible -> Build Phases -> Compile Sources.

78voto

Tibidabo Points 10510

Il n'est pas très intuitif de savoir comment désactiver l'ARC sur MULTIPLE Pendant un moment, je les faisais un par un jusqu'à ce que je trouve comment faire.

  1. Sélectionnez l'option souhaitée dans Target/Build Phases/Compile Sources dans Xcode (CMD+clic ou Shift+clic).
  2. PRESS ENTER (le double-clic réinitialise la sélection, donc cela ne fonctionne pas)
  3. Type -fno-objc-arc
  4. Appuyez sur Enter ou Done

73voto

Peter Hosey Points 66275

Les documents publics de l'ARC Bien qu'ils ne soient pas directement clairs sur ce point, ils semblent suggérer que tant que chaque classe est soit entièrement gérée par l'ARC, soit entièrement gérée manuellement, les classes peuvent être intégrées dans un seul programme.

Vous ne pouvez seulement pas mélanger l'ARC et le non-ARC dans une même classe ; le document dit que l'envoi retain , release , autorelease o retainCount les messages par tout moyen (y compris les minuteries et les performances retardées, qui utilisent @selector ) est interdit dans le code ARC. Ainsi, vous ne pouvez pas faire du non-ARC dans une classe ARC (parce que les messages nécessaires sont interdits) et vous ne pouvez pas faire de l'ARC dans une classe non-ARC (parce que l'ARC ajoute des éléments syntaxiques qui sont invalides sans ARC).

Le même document est un peu plus clair sur la question de savoir si vous pouvez intégrer des bibliothèques/frameworks non-ARC dans un programme ARC : Oui. Il ne mentionne pas si vous pouvez utiliser des bibliothèques/frameworks ARC dans un programme où tout votre code est non-ARC, mais étant donné tout ce qui précède, l'implication semble être oui.

35voto

Nikhil Bansal Points 1117

Si vous voulez désactiver le comptage automatique des références pour certains fichiers, c'est très simple à faire, il suffit de suivre les étapes suivantes : vous ajoutez des drapeaux de compilation dans Targets -> Build Phases -> Compile Sources.

xcode

Le drapeau utilisé est -fno-objc-arc appuyez sur la touche entrée après l'avoir écrit ! Vous devez double-cliquer sur la colonne de droite de la ligne sous Compiler Flags. J'espère que cela vous aidera. Merci :)

2voto

Naveen Points 413

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

Comment puis-je désactiver l'ARC pour un seul fichier dans un projet ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X