objective-c - 为什么发布版本比调试更严格
问题描述
在这行代码中:
NSInteger 答案 = 3; NSString *s = [NSString stringWithFormat:@"%ld",answer];
在 Xcode 10.3 中,在调试版本下没有错误。在发布版本下,我收到此错误:
'NSInteger' 类型的值不应用作格式参数;将显式转换添加到“long”而不是 [-Werror,-Wformat]
我理解错误的原因,我也应该将答案转换为 (long),如果我以 @"%d" 开头,编译器会抱怨并解决问题。但是当 ld 在那里时,调试版本中的编译器会保持安静,但在发布时它会引发一个标志。
关于什么设置会导致这种情况发生的任何想法?
提前致谢!
解决方案
推荐阅读
- outlook - 您能否将共享收件箱添加到 Outlook for Mac?
- c# - 我在设计编辑器中编码的不是我在输出中得到的
- unity3d - 允许 NavMeshAgent 相互穿行
- elixir - Kernel.--/2 奇怪的行为
- mysql - 使用 JOIN 返回错误删除多个表中的行
- javascript - 在 TypeScript 中提出许多问题
- raspberry-pi3 - 时间与服务器不同步,导致克隆证书错误
- javascript - 通过内存转储序列化对象实例
- excel - 自定义 Excel VBA 重置值的奇怪问题
- azure-devops - 如何在 Azure DevOps 中自动将工件提升到提要视图?