webentwicklung-frage-antwort-db.com.de

Wie kann ARC in Xcode 4.2 projektweit aktiviert werden?

Ich habe eine iOS-App, in die ich mithilfe von ARC konvertieren möchte. Ich würde nur das Migrationstool verwenden, aber es tritt in der Vorschau-Phase immer wieder bei mir auf.

Ich weiß, ich kann das -fobjc-arc Compiler-Direktive Datei für Datei, aber ich möchte ARC für das gesamte Projekt aktivieren und dann einzelne Klassen mit -fno-objc-arc.

Neue Projekte in 4.2 können standardmäßig ARC verwenden, daher muss irgendwo ein Schalter vorhanden sein.

Kann mir jemand helfen, das Projekt in ARC umzuwandeln?

50
Alpinista

"ARC ist in Xcode 4.2 verfügbar, derzeit in der Beta-Phase, und nur beim Kompilieren mit Clang (auch als" Apple LLVM-Compiler "bekannt). Die Einstellung heißt offensichtlich" Objective-C Automatic Reference Counting ". Schalten Sie sie ein und aus du gehst.

Wenn Sie an vorhandenem Code arbeiten, führt das Ändern dieser Einstellung zu einer enormen Menge von Fehlern. ARC verwaltet nicht nur den Speicher für Sie, sondern verhindert auch, dass Sie versuchen, dies selbst zu tun. Es ist illegal, Retain/Release/Autorelease manuell zu senden, wenn ARC verwendet wird. Da normaler Kakao-Code, der nicht von ARC stammt, mit diesem Zeug übersät ist, treten viele Fehler auf.

Glücklicherweise bietet Xcode ein Tool zum Konvertieren von vorhandenem Code. Wählen Sie Bearbeiten -> Refactor ... -> In Objective-C ARC konvertieren ... und Xcode führt Sie durch die Konvertierung Ihres Codes. Auch wenn es Situationen gibt, in denen Hilfe bei der Ermittlung der erforderlichen Maßnahmen erforderlich ist, sollte der Prozess weitgehend automatisch ablaufen. "

Ich habe das von diesem Link genommen, was mir sehr geholfen hat: http://www.mikeash.com/pyblog/friday-qa-2011-09-30-automatic-reference-counting.html

65
RyanG

Wählen Sie Ihr Projekt oder Ziel aus und gehen Sie zu Build-Einstellungen und unter dem Abschnitt Apple LLVM Compiler 3.0 - Sprache sehen Sie die Option Objective-C Automatic Reference Counting).

48
user263865

Für Towpse müssen Sie in Xcode 4.6 nach "CLANG_ENABLE_OBJC_ARC" suchen und diese dann in "Ja" ändern, um sie zu aktivieren.

5
Josh B