web-dev-qa-db-fra.com

Comment activer ARC à l'échelle du projet dans Xcode 4.2

J'ai une application iOS que je souhaite convertir en utilisant ARC . J'utiliserais simplement l'outil de migration, mais il me corrige systématiquement lors de la phase de prévisualisation.

Je sais que je peux utiliser le -fobjc-arc directive du compilateur fichier par fichier, mais je souhaite activer ARC sur l'ensemble du projet, puis désactiver les classes individuelles à l'aide de -fno-objc-arc.

Les nouveaux projets dans 4.2 peuvent utiliser ARC par défaut, donc il doit y avoir un commutateur quelque part.

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

50
Alpinista

"ARC est disponible dans Xcode 4.2, actuellement en version bêta, et uniquement lors de la compilation avec Clang (alias" compilateur Apple LLVM "). Le paramètre est appelé, évidemment," Comptage de référence automatique Objective-C ". Allumez-le, et éteignez-le tu vas.

Si vous travaillez sur du code existant, la modification de ce paramètre entraînera une énorme quantité d'erreurs. ARC gère non seulement la mémoire pour vous, mais il vous interdit d'essayer de le faire vous-même. Il est illégal d'envoyer manuellement la conservation/libération/libération automatique lors de l'utilisation d'ARC. Étant donné que le code Cocoa non-ARC normal est jonché de ce genre de choses, vous obtiendrez beaucoup d'erreurs.

Heureusement, Xcode propose un outil pour convertir le code existant. Sélectionnez Édition -> Refactoriser ... -> Convertir en Objective-C ARC ... et Xcode vous guidera à travers la conversion de votre code. Bien qu'il puisse y avoir des situations où il a besoin d'aide pour déterminer ce qu'il faut faire, le processus devrait être largement automatique. "

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

65
RyanG

Sélectionnez votre projet ou cible, puis accédez à Paramètres de construction et sous la section Compilateur Apple LLVM 3.0 - Langue vous verrez l'option Comptage de référence automatique Objective-C.

48
user263865

Pour towpse, dans Xcode 4.6, vous devrez rechercher "CLANG_ENABLE_OBJC_ARC" puis le changer en "Oui" pour l'activer.

5
Josh B