Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在xcode iPhone项目中启用代码块?_Iphone_Objective C_Xcode_Codeblocks - Fatal编程技术网

如何在xcode iPhone项目中启用代码块?

如何在xcode iPhone项目中启用代码块?,iphone,objective-c,xcode,codeblocks,Iphone,Objective C,Xcode,Codeblocks,我正在尝试在我们的iphone应用程序中启用代码块,以便运行xcode附带的静态分析器工具。我在运行构建和分析任务时收到以下警告(或错误,具体取决于我使用的编译器): /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIView.h:252:72:错误:块支持已禁用-使用-fbl

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

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


我已经将部署目标从iPhoneOS3.0更改为编译器默认值,并将编译器从GCC4.2更改为LLVM1.5和LLVMGCC4.2,但没有成功。我不确定我还需要做哪些更改才能使其工作,或者我需要在哪里添加-fblocks参数。有人知道吗?

在SDK 4.0中,如果使用包括块在内的新方法作为参数,则静态分析器无法工作。必须按如下方式显式启用块:在项目的设置中,将
-fblocks
置于“
其他C标志
”设置中

Clang静态分析器运行时不需要块支持(我们从3.0开始就使用它,当时iPhone操作系统中没有块)。在构建和分析项目之前,您是否清理过项目?我清理过。当它分析包含uikit的前缀头文件以及它所包含的所有内容时,就会出现问题。我猜想,如果在ios 4.0上构建它,它将无法识别新的块语法,除非以某种方式启用它。如果我针对3.2进行编译,我没有这个问题,这是一个解决方法,但如果可能的话,我想针对所有目标进行编译。问题是我没有明确使用它们,但当我在前缀头中包含UIKit时,它们就出现了。但这面旗帜解决了这个问题;谢谢你的指点!是否需要在-fblock中添加“”?