Using NSLog for debugging
Solution 1
Try this piece of code:
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@", digit);
The message means that you have incorrect syntax for using the digit
variable. If you're not sending it any message - you don't need any brackets.
Solution 2
Use NSLog()
like this:
NSLog(@"The code runs through here!");
Or like this - with placeholders:
float aFloat = 5.34245;
NSLog(@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat);
In NSLog()
you can use it like + (id)stringWithFormat:(NSString *)format, ...
float aFloat = 5.34245;
NSString *aString = [NSString stringWithFormat:@"This is my float: %f \n\nAnd here again: %.2f", aFloat, aFloat];
You can add other placeholders, too:
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);
Solution 3
Why do you have the brackets around digit
?
It should be
NSLog("%@", digit);
You're also missing an =
in the first line...
NSString *digit = [[sender titlelabel] text];
Solution 4
NSLog(@"%@", digit);
what is shown in console?
Solution 5
The proper way of using NSLog, as the warning tries to explain, is the use of a formatter, instead of passing in a literal:
Instead of:
NSString *digit = [[sender titlelabel] text];
NSLog(digit);
Use:
NSString *digit = [[sender titlelabel] text];
NSLog(@"%@",digit);
It will still work doing that first way, but doing it this way will get rid of the warning.
Zhen
Updated on July 09, 2022Comments
-
Zhen almost 2 years
I have the following code snippet in my Xcode:
NSString *digit [[sender titlelabel] text]; NSLog([digit]);
I tried to build the application and am getting the following warning message for the line
NSLog([digit]);
Warning: Format not a string literal and no format arguments
Can you advise me how I can resolve this warning message? What does the message actually mean?