【问题标题】:How do i enable code blocks in an xcode iPhone project?如何在 xcode iPhone 项目中启用代码块?
【发布时间】:2010-06-28 21:09:10
【问题描述】:

我正在尝试在我们的 iphone 应用程序中启用代码块,以便我可以运行 xcode 中包含的静态分析器工具。我在运行构建和分析任务时收到此警告(或错误,具体取决于我使用的编译器):

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:252:72:错误:块支持禁用 - 编译-fblocks 或选择支持它们的部署目标

我已将我的部署目标从 iPhone OS 3.0 更改为编译器默认值,并且我已将编译器从 GCC 4.2 更改为 LLVM 1.5 和 LLVM GCC 4.2,但没有成功。我不确定我还需要更改哪些内容才能使其正常工作,或者我需要在哪里添加 -fblocks 参数。有人知道吗?

【问题讨论】:

  • Clang 静态分析器不需要块支持来运行(我们从 3.0 开始就一直在使用它,当时 iPhone 操作系统中还没有块)。在构建和分析之前,您是否清理过项目?
  • 我有。打嗝来自于它分析包含 uikit 及其所有内容的前缀头文件时,我的猜测是,通过在 ios 4.0 上构建它,它无法识别新的块语法,除非它以某种方式启用。如果我针对 3.2 进行编译,我没有这个问题,这是一种解决方法,但如果可能的话,我想针对所有目标执行此操作。

标签: iphone objective-c xcode codeblocks


【解决方案1】:

在 SDK 4.0 中,如果您使用包含块作为参数的新方法,则静态分析器不起作用。您必须按如下方式显式启用块:在项目的设置中,将-fblocks 放入“Other C Flags”设置中。

【讨论】:

  • 问题是我没有明确使用它们,但是当我在前缀标头中包含 UIKit 时它们就会出现。那个标志虽然修复了它;谢谢指点!
  • 是否需要在-fblocks里面加" "?
猜你喜欢
  • 1970-01-01
  • 2010-12-05
  • 2011-09-29
  • 2012-02-19
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多