J'ai l'extrait de code suivant dans mon Xcode:
NSString *digit [[sender titlelabel] text];
NSLog([digit]);
J'ai essayé de créer l'application et j'obtiens le message d'avertissement suivant pour la ligne NSLog([digit]);
Warning: Format not a string literal and no format arguments
Pouvez-vous me dire comment résoudre ce message d'avertissement? Que signifie réellement le message?
Essayez ce morceau de code:
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);
Le message signifie que vous avez une syntaxe incorrecte pour utiliser la variable digit
. Si vous ne lui envoyez aucun message, vous n'avez pas besoin de parenthèses.
Utilisez NSLog()
comme ceci:
NSLog(@"The code runs through here!");
Ou comme ça - avec des espaces réservés:
float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);
Dans NSLog()
vous pouvez l'utiliser comme + (id)stringWithFormat:(NSString *)format, ...
float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];
Vous pouvez également ajouter d'autres espaces réservés:
float aFloat = 5.34245;
int aInteger = 3;
NSString *aString = @"A string";
NSLog(@"This is my float: %f \n\nAnd here is my integer: %i \n\nAnd finally my string: %@", aFloat, aInteger, aString);
Pourquoi avez-vous des crochets autour de digit
? CA devrait etre
NSLog("%@", digit);
Vous manquez également un =
en première ligne ...
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);
qu'est-ce qui est affiché dans la console?
La bonne façon d'utiliser NSLog, comme l'avertissement essaie d'expliquer, est d'utiliser un formateur, au lieu de passer un littéral:
Au lieu de:
NSString *digit = [[sender titlelabel] text];
NSLog(digit);
Utilisation:
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@",digit);
Cela fonctionnera toujours de cette façon, mais le faire de cette façon supprimera l'avertissement.
type: DONNÉES BOOL (OUI/NON) OU (1/0)
BOOL dtBool = 0;
OR
BOOL dtBool = NO;
NSLog(dtBool ? @"Yes" : @"No");
SORTIE: NON
type: Long
long aLong = 2015;
NSLog(@"Display Long: %ld”, aLong);
SORTIE: Affichage long: 2015
long long veryLong = 20152015;
NSLog(@"Display very Long: %lld", veryLong);
SORTIE: Affichage très long: 20152015
type: String
NSString *aString = @"A string";
NSLog(@"Display string: %@", aString);
SORTIE: Afficher la chaîne: une chaîne
type: Flotteur
float aFloat = 5.34245;
NSLog(@"Display Float: %F", aFloat);
SORTIE: isplay Float: 5.342450
type: Entier
int aInteger = 3;
NSLog(@"Display Integer: %i", aInteger);
SORTIE: Affichage entier: 3
NSLog(@"\nDisplay String: %@ \n\n Display Float: %f \n\n Display Integer: %i", aString, aFloat, aInteger);
SORTIE: chaîne: une chaîne
Afficher le flotteur: 5.342450
Afficher l'entier: 3
http://luterr.blogspot.sg/2015/04/example-code-nslog-console-commands-to.html