2012-04-17 6 views
11

Nach dem Konvertieren eines Xcode-Projekts in ARC (Automatic Reference Counting) muss ich ARC für einige meiner Quelldateien deaktivieren (hauptsächlich Code von Drittanbietern)).Hinzufügen von Flag "-fno-objc-arc" zu (mehreren) Quelldateien

Ich weiß, ich muss für jede dieser Dateien das Flag "-fno-objc-arc" setzen, aber Xcode gibt mir keine Option für die Stapelbearbeitung - ich muss dieses Flag manuell zu jeder Datei hinzufügen, Das kann mühsam sein, wenn Sie es für mehrere Dateien einrichten müssen.

Hat jemand einen klugen Ansatz dazu?

Antwort

23

diejenigen Wählen Sie die Fahne (mit Shift- und/oder Befehl) hinzufügen möchten, und drücken Sie Geben Sie den Flag-Editor angezeigt werden soll. Drücken Sie Fertig, um die eingegebene (n) Markierung (en) auf die ausgewählte (n) Datei (en) anzuwenden.

Tutorial

Ich habe eine blog post dienen als Tutorial für diesen Prozess zusammen.

+0

Schön !! Ich wusste nie, dass du das kannst +1 – borrrden

+0

Schnell und großartig! Ich versuchte Multi-Auswahl und Doppelklick, nie daran gedacht, Enter drücken! –

+1

Ja, es ist nicht sehr intuitiv. –

1

Ich muss Dateien einstellen, die ARC (hauptsächlich 3rd-Party-Code) nicht unterstützen sollen.

Zusätzlich zur Verwaltung der Flags können Sie einfach eine statische Bibliothek für diese Quellen erstellen und dann verknüpfen.

+0

Ich finde Bibliotheksherstellung zu einem verwirrenden und oft sinnlosen Prozess.Mit der ganzen Zeit, die Sie damit verbracht haben, Header zu überprüfen und Build-Einstellungen zu optimieren, hätten Sie einfach die Compiler-Flags setzen können und damit erledigt. – CodaFi

+0

@CodaFi nachdem ich viele Bibliotheken geschrieben und konfiguriert habe, ist meine Meinung genau das Gegenteil :) – justin

+0

Ich denke es hängt alles davon ab, wie viele Apps man pflegen muss. – nycynik

2

Die einfachste Option ist die Verwendung des ARC Konvertierungstools unter Bearbeiten> Refactor.

Es ist nicht sehr klar, aber im Grunde überprüfen Sie einfach alle Dateien, die Sie ARC verwenden möchten und deaktivieren Sie alle, die Sie nicht tun. Dies wird wie folgt vor:

1) Dateien, die nicht markiert sind, dies -fno-objc-arc-Flag

2) hat, die Dateien angewandt

3) Dateien Bogen umgewandelt wird geprüft, dass werden überprüft, die bereits in ARC umgewandelt worden sind, wird unberührt bleiben

Lesen Sie das noch einmal sorgfältig. Was manchmal Leute verwirrt, ist, dass sie davon ausgehen, dass Dateien, die bereits konvertiert wurden, beim nächsten Ausführen des Tools deaktiviert bleiben sollten, aber dies würde den -fno-objc-Bogen falsch auf diese Dateien anwenden (was zu Lecks führen würde).

Sie sollten sich das ARC-Konvertierungstool als "Stapelauswahl-ARC-kompatible Dateien und Konvertieren von Dateien, die noch nicht ARC sind" anstelle eines Konvertierungswerkzeugs vorstellen.

Sie können das Konvertierungstool so oft ausführen, wie Sie möchten - die Effekte sind nicht kumulativ (obwohl das Konvertieren von Dateien in ARC nicht reversibel ist).

Verwandte Themen