Xcode 5 等效于构建设置中的 NS_BLOCK_ASSERTIONS

Posted

技术标签:

【中文标题】Xcode 5 等效于构建设置中的 NS_BLOCK_ASSERTIONS【英文标题】:Xcode 5 equivalent of NS_BLOCK_ASSERTIONS in Build Settings 【发布时间】:2013-12-04 14:23:22 【问题描述】:

在 Xcode 5 之前,可以使用默认的构建设置阻止发布构建包含 NSAssert 语句及其变体:

OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";

此设置可在project.pbxproj 中找到,并在 Xcode 中设置:

(请注意,此抓取来自转换为 Xcode 5 的 Xcode 4 项目。)

每个目标将仅在发布版本中继承此设置。显然这是一件好事。该应用程序不会立即崩溃,而是无论如何都可能会遇到困难。而对于 Debug 构建,您希望在 NSAssert 失败时立即知道。

但是,我很难在 Xcode 5 中找到等价物。

使用默认模板创建新项目没有显示等效设置:

我的问题是,Xcode 5 中的等效设置是什么,或者 NS_BLOCK_ASSERTIONS 是否必须手动添加到 Other C Flags 才能发布版本?

【问题讨论】:

【参考方案1】:

它现在有了自己的设置字段! 启用基础断言。将您的调试设置为是,将您的发布设置为否,如下面的截屏所示。

注意:您需要在构建设置选项卡的左上角单击“全部”才能看到它,您可以在我的屏幕中看到左上角的蓝色“全部”。

【讨论】:

情节变厚了。从实验来看,Xcode 5 中的新标志 - “启用基础断言”或 ENABLE_NS_ASSERTIONS - 似乎确实有效。但是,如果您检查 NSException.h,它仍然会检查先前的标志 NS_BLOCK_ASSERTIONS。参见#if !defined(NS_BLOCK_ASSERTIONS)(来自prod.lists.apple.com/archives/xcode-users/2013/Oct/…)。

以上是关于Xcode 5 等效于构建设置中的 NS_BLOCK_ASSERTIONS的主要内容,如果未能解决你的问题,请参考以下文章

xCode 5.1 无法识别文件系统中“相对于文件夹”(真实文件夹)中的类

PHP 5.2 等效于后期静态绑定(新静态)?

Xcode 5 为 10.8.5 构建应用程序

用于指定源搜索路径的 LLDB 等效于 gdb“目录”命令?

Xcode 等效于 ' __asm int 3 / DebugBreak() / Halt?

自定义帖子类型等效于 Wordpress 中的“帖子页面”设置