objective c - Wie kann ich ARC für eine einzelne Datei in einem Projekt deaktivieren?




objective-c xcode (12)

  1. Wählen Sie das Xcode-Projekt
  2. Gehe zu Zielen
  3. Wählen Sie den Abschnitt Build-Phasen
  4. Wählen Sie im Bereich Build-Phasen die Quellen kompilieren.
  5. Wählen Sie die Datei aus, in der ARC nicht deaktiviert werden soll, und fügen Sie -fno-objc-arc hinzu

Ich verwende ARC erfolgreich in meinem Projekt. Ich habe jedoch einige Dateien (z. B. in Unit-Tests und Mock-Objekten) gefunden, in denen die Regeln von ARC momentan etwas fragiler sind. Ich erinnere mich, dass es eine Möglichkeit gab, ARC pro Datei zu deaktivieren, obwohl ich diese Option nicht finden konnte.

Ist das möglich? Wie deaktiviere ich ARC pro Datei?


Bitte folgen Sie einfach dem Screenshot und geben Sie -fno-objc-arc ein .


Es ist eine sehr einfache Möglichkeit, eine einzelne Datei nicht bogenförmig zu machen.

Befolgen Sie die folgenden Schritte:

ARC für einzelne Datei deaktivieren:

  1. Wählen Sie die gewünschten Dateien unter Target / Build Phases / Compile Sources in Xcode

  2. Wählen Sie die .m-Datei, die Sie NON-ARC machen möchten, drücken Sie ENTER. Geben Sie -fno-objc-arc ein

Nicht-ARC-Datei zum ARC-Projektflag: -fno-objc-arc

ARC-Datei zum Nicht-ARC-Projektflag: -fobjc-arc


Es ist möglich, ARC (Automatic Reference Counting) für bestimmte Dateien in Xcode zu deaktivieren.

Wählen Sie Target -> Build Phases -> Compile Sources -> Wählen Sie File (Doppelklick) -> Fügen Sie "-fno-objc-arc" zum Popup-Fenster hinzu.

Ich hatte diese Situation bei der Verwendung von "Reachibility" -Dateien festgestellt.

Dies wird in der folgenden Abbildung gezeigt:


Für Xcode 4.3 könnte der einfachere Weg wie folgt aussehen: Bearbeiten / Refactor / Konvertieren in objective-C ARC, dann check die Dateien, die nicht konvertiert werden sollen. Ich finde auf diese Weise das gleiche wie die Verwendung des Compiler-Flags oben.


Folgen Sie Schritt bis, um ARC zu deaktivieren

Wählen Sie das Xcode-Projekt Gehe zu Zielen Wählen Sie den Abschnitt Build-Phasen Im Abschnitt Build-Phasen wählen Sie die Compile-Quellen. Wählen Sie die Datei aus, in der ARC nicht deaktiviert werden soll, und fügen Sie -fno-objc-arc hinzu


Hinweis: Wenn Sie ARC für viele Dateien deaktivieren möchten, müssen Sie:

  1. Öffnen Sie "Build phases" -> "Quellen kompilieren"
  2. Wählen Sie Dateien mit "left_mouse" + "cmd" (für getrennte Dateien) oder + "shift" (für gruppierte Dateien - wählen Sie zuerst und zuletzt)
  3. Drücken Sie Enter"
  4. einfügen -fno-objc-arc
  5. Drücken Sie erneut "Enter"
  6. profitieren!

Ich denke, alle anderen Antworten erklären, wie MRC (Manuelle Referenzzählung) deaktiviert und ARC (Automatische Referenzzählung) aktiviert wird. Verwendung von MRC (Manual Reference Count), dh Deaktivierung von ARC (Automatic Reference Count) bei MULTIPLE-Dateien:

  1. Wählen Sie die gewünschten Dateien unter Target / Build Phases / Compile Sources in Xcode
  2. DRÜCKEN SIE ENTER
  3. Geben Sie -fobjc-arc ein
  4. Drücken Sie die Eingabetaste oder Fertig

Verwenden -fno-objc-arc einfach das -fno-objc-arc in Build Phases > Compile Sources -fno-objc-arc


Verwenden Sie -fno-objc-arc für jede Datei in den Build-Phasen


Wenn Sie Unity verwenden, müssen Sie dies in Xcode nicht ändern. Sie können ein Kompilierungs-Flag in den Metadaten für die bestimmten Dateien direkt in Unity anwenden. Wählen Sie sie einfach im Projektfenster aus und wenden Sie sie im Inspektorfenster an. Dies ist wichtig, wenn Sie Cloud Build verwenden möchten.


Deaktivieren Sie ARC bei mehreren Dateien:

  1. Wählen Sie die gewünschten Dateien unter Target / Build Phases / Compile Sources in Xcode
  2. DRÜCKEN SIE ENTER
  3. Geben Sie -fno-objc-arc ein
  4. Drücken Sie die Eingabetaste oder Fertig

;)







manual-retain-release