Ich verwende ARC erfolgreich in meinem Projekt. Ich bin jedoch auf einige Dateien gestoßen (z. B. in Unit-Tests und Scheinobjekten), in denen die Regeln von ARC derzeit 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?
Antworten:
Sie können ARC für einzelne Dateien deaktivieren, indem Sie das
-fno-objc-arc
Compiler-Flag für diese Dateien hinzufügen .Sie fügen Compiler-Flags unter Ziele -> Phasen erstellen -> Quellen kompilieren hinzu. Sie müssen auf die rechte Spalte der Zeile unter Compiler-Flags doppelklicken . Sie können es auch mehreren Dateien hinzufügen, indem Sie die cmd-Taste gedrückt halten, um die Dateien auszuwählen, und dann die Eingabetaste drücken, um das Flag-Bearbeitungsfeld aufzurufen. (Beachten Sie, dass beim Bearbeiten mehrerer Dateien möglicherweise bereits vorhandene Flags überschrieben werden.)
Ich habe ein Beispielprojekt mit einem Beispiel erstellt: https://github.com/jaminguy/NoArc
Weitere Informationen finden Sie in dieser Antwort: Deaktivieren Sie die automatische Referenzzählung für einige Dateien
quelle
-fno-objc-arc
Sie dann einfach das hinzu und es wird allen ausgewählten Dateien hinzugefügt. edit sah gerade die Antwort unter dieser :(Deaktivieren Sie ARC für MEHRERE Dateien:
;)
quelle
Für Xcode 4.3 ist der einfachere Weg möglicherweise: Bearbeiten / Refaktorieren / In Ziel-C-ARC konvertieren und dann die Dateien abhaken, die nicht konvertiert werden sollen. Ich finde das genauso wie oben mit dem Compiler-Flag.
quelle
Es ist sehr einfach, einzelne Dateien nicht bogenförmig zu machen.
Befolgen Sie die folgenden Schritte:
Deaktivieren Sie ARC für einzelne Dateien:
Wählen Sie die gewünschten Dateien unter Ziel / Phasen erstellen / Quellen kompilieren in Xcode aus
Wählen Sie die .m-Datei aus, die Sie erstellen möchten. NON-ARC PRESS ENTER Geben Sie -fno-objc-arc ein
Nicht-ARC-Datei zum ARC-Projektflag:
-fno-objc-arc
ARC-Datei in Nicht-ARC-Projektflag:
-fobjc-arc
quelle
Hinweis: Wenn Sie ARC für viele Dateien deaktivieren möchten , müssen Sie:
-fno-objc-arc
quelle
Verwenden Sie einfach die
-fno-objc-arc
Flagge inBuild Phases
>Compile Sources
quelle
quelle
Es ist möglich, ARC (Automatic Reference Counting) für eine bestimmte Datei in Xcode zu deaktivieren.
Wählen Sie Ziel -> Phasen erstellen -> Quellen kompilieren -> Datei auswählen (Doppelklick) -> Fügen Sie dem Popup-Fenster "-fno-objc-arc" hinzu.
Ich hatte diese Situation bei der Verwendung von "Erreichbarkeits" -Dateien festgestellt.
Dies ist in der folgenden Abbildung dargestellt:
quelle
Verwenden Sie -fno-objc-arc für jede Datei in Erstellungsphasen
quelle
Die vier obligatorischen Schritte, wie in diesem Video erläutert
quelle
Bitte folgen Sie einfach dem Screenshot und geben Sie -fno-objc-arc ein .
quelle
Wenn Sie Unity verwenden, müssen Sie dies in Xcode nicht ändern. Sie können ein Kompilierungsflag in den Metadaten für die spezifischen 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.
quelle
Fügen Sie das Flag "-fno-objc-arc" hinzu.
Befolgen Sie einfach die folgenden Schritte: App> Ziele> Phasen erstellen> Quellen kompilieren> Flag nach Klasse "-fno-objc-arc hinzufügen"
quelle
Ich denke, alle anderen Antworten erklären, wie man MRC (Manual Reference Count) deaktiviert und ARC (Automatic Reference Count) aktiviert. So verwenden Sie MRC (Manual Reference Count), dh Deaktivieren von ARC (Automatic Reference Count) für MEHRERE Dateien:
quelle
Verwenden Sie einfach das Flag -fno-objc-arc unter Build-Phasen> Quellen kompilieren vor Dateien, auf die ARC nicht angewendet werden soll.
quelle
quelle
Gehen Sie zu App -> dann Ziele -> Phasen erstellen -> Quelle kompilieren
Wählen Sie nun die Datei aus, in der Sie ARC deaktivieren möchten
Fügen Sie dieses Snippet "-fno-objc-arc" ein. Drücken Sie nach dem Einfügen die EINGABETASTE
in jeder Datei, in der Sie ARC deaktivieren möchten.
quelle
Befolgen Sie den folgenden Schritt, um die Deaktivierung von ARC zu aktivieren
Xcode-Projekt auswählen Zu Zielen wechseln Wählen Sie den Abschnitt Build-Phasen aus. Wählen Sie im Abschnitt Build-Phasen die Kompilierungsquellen aus. Wählen Sie die Datei aus, für die Sie ARC nicht deaktivieren möchten, und fügen Sie -fno-objc-arc hinzu
quelle