记录变量值

你不应该在没有像这样的文字格式字符串的情况下调用 NSLog

 placeholderCopyNSLog(variable);    // Dangerous code!

如果变量不是 NSString,程序将崩溃,因为 NSLog 需要一个 NSString

如果变量是 NSString,它将起作用,除非你的字符串包含%NSLog 将解析%序列作为格式说明符,然后从堆栈中读取垃圾值,导致崩溃甚至执行任意代码

相反,始终将第一个参数设为格式说明符,如下所示:

 placeholderCopyNSLog(@"%@", anObjectVariable);
NSLog(@"%d", anIntegerVariable);