Macro beim Aufruf von Objective-C isEqualToString: Erzeugt einen Fehler über ungültiges Token

Ich versuche ein Makro wie dieses zu definieren:

#define SOME_DEF [[TTys getString] isEqualToString:ANOTHER_STRING]

und dann wie folgt vorgehen:

#if SOME_DEF
...
#endif
[TTys getString] gibt einen NSString zurückANOTHER_STRING ist früher definiert als#define ANOTHER_STRING "hello"

Ich erhalte den folgenden Fehler auf dem#if SOME_DEF Linie

Ungültiges Token am Anfang eines Präprozessorausdrucks

Basierend aufSO frage Dies kann durch etwas verursacht werden, das zur Kompilierungszeit nicht behoben werden kann, aber ich habe alles definiert. Mein Verdächtiger ist dasisEqualToString -Methode, aber ich kenne keinen anderen Weg, um dies zu tun.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage