2012-03-08 11 views
20

Mam Ciąg stały zdefiniowane tak:Jak wydrukować ciąg stały z NSLog na iOS

#define kMyString @"This is my string text!"; 

gdzieś w kodzie chciałbym drukować out ten kawałek kodu z NSLog tak:

NSLog(@"This is it: %@",kMyString); 

Ale dostać błąd kompilacji: Expected expression.

Już obejrzałem Apple'a Format Specifiers, ale nie mogłem go rozgryźć.

Czy ktoś może mi wyjaśnić, jak to zrobić?

Dzięki!

+1

+1 do „This Is It” –

Odpowiedz

37

Należy usunąć ; z definicji kMyString:

#define kMyString @"This is my string text!" 

Sposób, w jaki to zrobił odpowiada:

NSLog(@"This is it: %@", @"This is my string text!";); 
+1

ah tak rzeczywiście :-) zbyt oczywiste ... – TheEye

+0

mam źle wpisany w pytaniu. Ale problem nadal istnieje. –

+0

OMG. Właściwie błędnie wpisałem również kod. Usunięto średnik i teraz to działa. Dzięki! –

2

Usuń ten semi dwukropek po #define i używać %@ i będzie działać .

+0

Ale to już nie będzie stała, której chcę ... –

+0

cóż, jeśli chcesz mieć stałą łańcuchową, zawsze możesz użyć 'extern NSString * const MyFirstConstant;' –

+0

odsyłam ten link Myślę, że to jest to, czego chcesz .. http://stackoverflow.com/a/539191/919545 –

2

%@ jest dla obiektów. BOOL nie jest obiektem.
Na baz danych typu %@ zmiany następująco

For Strings you use %@ 
For int you use %i 
For float you use %f 
For double you use %lf 
+0

W tym pytaniu nie ma BOOL-ów. –

Powiązane problemy