【发布时间】:2013-04-15 11:20:07
【问题描述】:
模拟器的 iOS 应用程序构建良好。但是,当我尝试为设备构建时,@YES 和 @NO 文字的编译失败。我们使用 iOS 6.1 作为构建 SDK,但保留了 5.1。 iPad 的操作系统版本是 6.1.3。有什么我遗漏的可能导致失败的原因吗?
Fragment from build log: /Applications/Xcode-4.6.app/Contents/Developer/Platforms/
iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/include/objc/objc.h:50:26
: note: expanded from macro 'YES'
#define YES (BOOL)1
在构建中选择 5.1 SDK 有什么原因吗?
部署目标是 5.0,但将其更改为 6.1 并不能解决问题。 Xcode 版本:4.6 (4H127)
是的,我知道使用 @(YES) 和 @(NO) 可以解决此问题,但这是 5.0 解决方案。
【问题讨论】:
-
我记得曾经看到过一些关于这个的东西,试着改用@(YES)
-
@MarceloFabri 已更新 - 4.6 (4H127)。
-
您是否尝试过清理项目并删除 DerivedData?
-
一圈可以有header导入吗?您是否在某处手动导入
objc.h标头?还是重新定义(BOOL)?尝试检查编译失败的确切位置。或者可能是非标准的编译器参数?还是您自己的预处理器指令与 Apple 标头中的预处理器指令冲突? -
苏丹 - 不。这段代码在两周前编译得很好。看到它为模拟器构建得很好。
标签: ios objective-c