Vorkompilierter Header mit Konstantenproblem

8

Ich habe ein paar Konstanten-Dateien "Constants.h" in meinem Projekt, die ich in die Prefix.pch-Datei aufnehmen werde, um für alle Klassen in meinem Projekt verfügbar zu sein. Sie enthalten nur eine Menge #define-Anweisungen.

Meine Klassen erkennen diese Konstanten nicht (keine automatische Vervollständigung), und Xcode gibt mir jedes Mal, wenn ich sie benutze, "Undeclared Identifier" -Fehler. Wenn ich das Projekt jedoch ausführe, funktioniert alles einwandfrei (eingestellt, um Fehler zu ignorieren).

Gibt es eine Möglichkeit, wie ich diese Warnungen loswerden kann? #pragma sie in der Präfix-Datei oder etwas zu ignorieren? Ich habe viele Optionen ausprobiert, einschließlich "precompile prefix header" auf NEIN in Build-Einstellungen festlegen.

Irgendwelche Ideen?

BEARBEITEN: Ich habe versucht, abgeleitete Daten zu löschen und Build-Ordner zu löschen, ohne Erfolg.

Es ist vielleicht erwähnenswert, dass ich in meinem Projekt drei Ziele und in diesem Projekt ein anderes Projekt habe.

Außerdem importieren einige der importierten Klassen normale Klassen. Wie eine Kategorieerweiterung für UIFont und eine Analytics-Klasse. Könnte das das beeinflussen?

    
TTillage 16.08.2012, 15:53
quelle

4 Antworten

0

Ich hatte ein Präprozessor-Makro in einem meiner Ziele, das ich von "Präprozessor-Makros" in "Präprozessor-Makros, die nicht in vorkompilierten Headern verwendet werden" verschoben und das Problem gelöst hat.

    
TTillage 17.08.2012, 21:06
quelle
10

Um dies zu beheben, musste ich das Flag "Precompile Prefix Header" in den Build Settings meines Ziels auf NO setzen. Auf diese Weise verlieren Sie die Build-Leistung, die durch eine zwischengespeicherte kompilierte Header-Datei erzielt wird. In meinem Fall ist mein Präfix-Header jedoch ziemlich klein, sodass ich keinen Treffer in der Build-Zeit sehen kann.

    
Peter 19.12.2012 21:26
quelle
3

Versuchen Sie, die vom Projekt abgeleiteten Daten zu löschen. Xcode muss Ihr Projekt manchmal neu indizieren, um "Fehler" wie diese zu entfernen.

Organisator & gt; Projekte & gt; Dein Projekt

Klicken Sie auf die Schaltfläche "Löschen" rechts neben der Zeile "Abgeleitete Daten".

Beende sofort Xcode und öffne sie dann erneut.

    
Ian L 16.08.2012 17:12
quelle
2

Ich hatte die PCH-Datei, die .h-Datei mit vielen Makros importiert (insbesondere verwende ich die MJGAvability Header, der warnt, wenn ich Features verwende, die neuer als mein Implementierungsziel sind. Ersetzen:

%Vor%

mit

%Vor%

hat dieses Problem für mich gelöst.

    
fishinear 11.01.2014 14:57
quelle