Globale Konstanten in Objective-C

8

Ich habe eine Datei namens Constants.h :

%Vor%

und Konstanten.m :

%Vor%

Erste Frage: Wie kann ich DEBUG auf True und False setzen?

Ich habe eine View-Controller-Datei MyViewController.m :

%Vor%

Der Code funktioniert nicht und gibt mir diesen Fehler zurück:

%Vor%

Wie kann ich das beheben?

Ich muss mehrere globale String-Variablen mit anderen Strings kombinieren, um verschiedene URLs zu erstellen.

UPDATE 1

Jetzt Constants.m ist:

%Vor%

Aber es gibt einen Fehler in der letzten Zeile Parse Fehler: erwartet ')' . Wahrscheinlich kann ich CFSTR nur mit Makros verwenden. Ich muss einen Weg finden, alle meine globalen Variablen zu haben.

    
Fred Collins 06.11.2011, 23:00
quelle

3 Antworten

6

Lösung A:

Ich persönlich würde nur eine Funktion für ANOTHER_URL verwenden.

Lösung B:

Wenn Sie wirklich eine Konstante wollen: Sie sollten in der Lage sein, cstring-Verkettungsregeln über #define zu verwenden und dann durch CFSTR() :

zu pumpen %Vor%

Lösung C:

Wenn Sie nur eine über die Initialisierung erstellen möchten, können Sie auch eine Funktion / Methode local static in C ++ / ObjC ++ - Übersetzungen (verwenden Sie dann C oder ObjC Sichtbarkeit, wo erforderlich):

%Vor%     
justin 06.11.2011, 23:03
quelle
1

Erstens können Sie Xcode anweisen, einige Präprozessor-Makros für Debug-Builds festzulegen. Verwenden Sie die Build-Option 'Präprozessormakros'.

Bei Ihrer zweiten Frage können Sie eine objective-C-Methode nicht aufrufen, um eine Konstante zu füllen, da diese zur Kompilierungszeit nicht verfügbar ist. Ihre beste Option ist es, die globale Variable zu definieren und dann einen Wert in der Methode 'initialize' der Klasse anzugeben.

%Vor%

initialize wird aufgerufen, bevor Ihre erste Instanz der Klasse erstellt wird, also ist es sicher. Sie müssen das const-Schlüsselwort löschen, aber ich bin sicher, dass Sie sich selbst vertrauen können! ;)

    
joerick 06.11.2011 23:08
quelle
0

#define DEBUG 1 oder 0 zum Deaktivieren.

Der Fehler liegt daran, dass Sie eine Methode von NSString aufrufen, während es eine Kompilierkonstante ist. Mit anderen Worten sagen Sie dem Compiler etwas, das er einfach nicht verarbeiten kann. Sie müssen einen solchen dynamischen Link beim Start initialisieren, der Compiler kann dies nicht für Sie tun.

    
Antwan van Houdt 06.11.2011 23:03
quelle