50 votes

Comment activer le projet ARC dans Xcode 4.2?

J'ai une application iOS qui je veux convertir à l'aide de l'ARC. Je voudrais juste utiliser l'outil de migration, mais une erreur pour moi de façon constante au cours de la phase de l'aperçu.

Je sais que je peux utiliser l' -fobjc-arc directive de compilation sur un fichier par fichier, mais je veux l'activer à l'ARC sur l'ensemble du projet, puis éteignez les classes individuelles à l'aide de -fno-objc-arc.

De nouveaux projets en 4.2 pouvez utiliser l'ARC par défaut, donc il doit y avoir un interrupteur quelque part.

Quelqu'un peut-il m'aider à convertir le projet d' ARC

65voto

RyanG Points 2700

"L'ARC est disponible dans Xcode 4.2, actuellement en version bêta, et seulement quand compilation avec Clang (un.k.un. "Apple LLVM compilateur"). Le réglage est appelé, bien évidemment, "Objective-C Automatique de Comptage de Référence". De l'activer, et vous partez.

Si vous travaillez sur du code existant, la modification de ce réglage produit une quantité énorme d'erreurs. L'ARC ne gère pas seulement la mémoire pour vous, mais elle vous interdit d'essayer de le faire vous-même. Il est illégal de envoyer manuellement conserver/presse/autorelease lors de l'utilisation de l'ARC. Depuis que la normale non-ARC de Cacao code est jonché de ce genre de choses, vous aurez beaucoup de erreurs.

Heureusement, Xcode propose un outil pour convertir le code existant. Sélectionnez Modifier -> Un peu de remaniement... -> Convertir en Objective-C à l'ARC... et Xcode vous guidera à travers la conversion de votre code. Bien qu'il peut y avoir certains les situations où il a besoin d'aide pour déterminer ce faire, le processus de devrait être en grande partie automatique."

J'ai pris qu'à partir de ce lien, qui m'a beaucoup aidé: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html

5voto

Josh B Points 213

Pour Towpse, dans Xcode 4.6, vous devrez rechercher "CLANG_ENABLE_OBJC_ARC", puis modifiez-le en "Oui" pour l'activer.

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