最近我浪费了大约半小时追踪到的NSLog这种奇怪的行为(...):NSLog(...)不正确的格式说明符影响其他变量?
NSString *text = @"abc";
long long num = 123;
NSLog(@"num=%lld, text=%@",num,text); //(A)
NSLog(@"num=%d, text=%@",num,text); //(B)
线(A)打印预计 “数= 123,文本= ABC”,但线(B )打印“num = 123,text = (null)”。
显然,打印long long
与%d
是一个错误,但有人可以解释为什么它会导致text
打印为空?
如果使用-Wall选项进行编译,编译器会警告您这类问题;我也强烈建议 - 错误,所以警告总是打破构建。 – 2009-08-04 19:56:16