Wie benötige ich ARC in einer Klasse?

8

Ich habe eine App mit ARC-Code und Nicht-ARC-Code. Der Compiler wird auffangen, wenn ich versuche, Nicht-ARC-Code als ARC zu kompilieren. Wie verursache ich einen Kompilierzeitfehler / eine Fehlermeldung, wenn mein ARC-Code fälschlicherweise ohne ARC kompiliert wird? Offensichtlich wird der Code kompiliert. Es wird nur undicht. Der statische Analysator fängt das Problem auf. Ich würde lieber einen Weg finden, ein Pragma zu verlassen oder in meinem ARC-Code zu definieren.

Das Folgende wird von Apple in objc-api.h definiert:

%Vor%

Mein C-Makro-Fu ist schwach. Wie würde ich es benutzen? Oder gibt es vielleicht ein besseres zu überprüfendes Symbol?

P.S. Ich frage, weil ich viel von meiner App aus wiederverwendbaren Bibliotheken baue. Ich möchte sicherstellen, dass jede Datei auf die richtige Weise kompiliert wird.

    
adonoho 04.12.2011, 22:59
quelle

2 Antworten

9

Folgendes sollte funktionieren:

%Vor%

Platziere es am Anfang deiner Datei.

    
Krizz 04.12.2011, 23:02
quelle
-1

Wenn es sich um eine vollständige Datei handelt, würde ich den Compiler-Flags -fno-objc-arc empfehlen, um den Nicht-Arc-Compiler zu verwenden.

Verwenden Sie das Makro, um "Teile" des Codes mit dem Nicht-Arc-Compiler zu kompilieren. Verwenden Sie dies zum Beispiel, wenn Sie ein Framework schreiben, das sowohl in Arc- als auch in Nicht-Arc-Codebasen verwendet wird und Releases schreibt, Deallocs innerhalb dieses Makroblocks

    
Mugunth 17.02.2012 16:49
quelle