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 无法识别文件系统中“相对于文件夹”(真实文件夹)中的类
用于指定源搜索路径的 LLDB 等效于 gdb“目录”命令?