【发布时间】:2019-10-09 20:41:24
【问题描述】:
在这行代码中:
NSInteger 答案 = 3; NSString *s = [NSString stringWithFormat:@"%ld",answer];
在 Xcode 10.3 中,在调试版本下没有错误。 在发布版本下,我收到此错误:
“NSInteger”类型的值不应用作格式参数;添加 显式转换为 'long' [-Werror,-Wformat]
我理解错误的原因,我也应该将答案转换为 (long),如果我以 @"%d" 开头,编译器会抱怨并修复问题。但是当 ld 存在时,调试版本中的编译器会保持安静,但在发布时它会引发一个标志。
关于什么设置会导致这种情况发生的任何想法?
提前致谢!
【问题讨论】:
-
查看构建设置。有很多默认差异。
标签: objective-c xcode gcc gcc-warning