Logging Variable Values
suggest changeYou shouldn’t call NSLog without a literal format string like this:
NSLog(variable); // Dangerous code!
If the variable is not an NSString, the program will crash, because NSLog expects an NSString.
If the variable is an NSString, it will work unless your string contains a %. NSLog will parse the % sequence as a format specifier and then read a garbage value off the stack, causing a crash or even executing arbitrary code.
Instead, always make the first argument a format specifier, like this:
NSLog(@"%@", anObjectVariable);
NSLog(@"%d", anIntegerVariable);
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents