2012-03-08 13 views
20

tengo una constante de cadena definido así:Cómo imprimir constante de cadena con NSLog en IOS

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

En algún lugar en el código me gustaría impresión de esta pieza de código con NSLog así:

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

Pero consigue un error de compilación: Expected expression.

Ya he mirado el Format Specifiers de Apple, pero no pude descifrarlo.

¿Puede alguien explicarme cómo hacerlo?

Gracias!

+1

+1 para "eso es todo" –

Respuesta

37

Debe eliminar ; de la definición de kMyString:

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

La forma en que lo hizo es equivalente a:

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

ah sí de hecho :-) demasiado obvio ... – TheEye

+0

he escrito mal en cuestión. Pero el problema todavía existe. –

+0

OMG. De hecho, también he escrito mal en el código. Se eliminó el punto y coma y ahora funciona. ¡Gracias! –

2

eliminar ese punto y coma después de #define y utilizar %@ y funcionará .

+0

Pero eso ya no será una constante que quiero ... –

+0

bueno si quieres una cadena constante, siempre puedes usar 'extern NSString * const MyFirstConstant;' –

+0

consulte este enlace Creo que esto es lo que quiere .. http://stackoverflow.com/a/539191/919545 –

2

%@ es para objetos. BOOL no es un objeto.
En las bases de datos de tipo %@ cambios de la siguiente manera

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

No se mencionan BOOL en esta pregunta. –

Cuestiones relacionadas