意外的类型名称“BOOL”:iOS SDK 6.1(设备)中的预期表达式
Posted
技术标签:
【中文标题】意外的类型名称“BOOL”:iOS SDK 6.1(设备)中的预期表达式【英文标题】:Unexpected type name 'BOOL': expected expression in iOS SDK 6.1 (Device) 【发布时间】: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 标头中的预处理器指令冲突?
苏丹 - 不。这段代码在两周前编译得很好。看到它为模拟器构建得很好。
【参考方案1】:
残酷的回答:
安装新的 Xcode 并不再删除(此时)5.1 SDK 解决了该问题。很难说到底发生了什么,但建议将您的工具升级到最新版本。
【讨论】:
以上是关于意外的类型名称“BOOL”:iOS SDK 6.1(设备)中的预期表达式的主要内容,如果未能解决你的问题,请参考以下文章
虽然 ios 6.1 作为基础 sdk xcode 5 为 ios 7 构建 ipa
ios 7 模拟器不会回退针对 ios 6.1 sdk 编译的应用程序的用户界面