web-dev-qa-db-fra.com

Comment imprimer une constante de chaîne avec NSLog sur iOS

J'ai une constante de chaîne définie comme ceci:

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

Quelque part dans le code, je voudrais imprimer ce morceau de code avec NSLog comme ça:

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

Mais obtenez une erreur de build: Expected expression.

J'ai déjà regardé l'Apple Format Specifiers mais je n'ai pas pu le comprendre.

Quelqu'un peut-il m'expliquer comment procéder?

Merci!

22
Borut Tomazin

Vous devez supprimer ; à partir de la définition de kMyString:

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

La façon dont vous l'avez fait équivaut à:

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

%@ est pour les objets. BOOL n'est pas un objet.
Sur la base du type de données %@ change comme suit

For Strings you use %@
For int  you use %i
For float you use %f
For double you use %lf
4
Vaibhav Sharma

Retirez ce point-virgule après #define et utilise %@ et cela fonctionnera.

2
Ankit Srivastava