5

NS_BLOCK_ASSERTIONS关闭NSAssert通话还是关闭assert()通话。我的应用程序在与assert(...)声明行的发布模式下崩溃。

文档仅说明NSAssert并且没有说明assert()呼叫是否被禁用。

有几个与我有关的问题没有回答。我在这里链接它们:

Objective-C
NSAssert 中的 NS_BLOCK_ASSERTIONS 与断言:您使用哪个,何时使用?
如何知道 NSAssert 在发布版本中是否被禁用?

4

1 回答 1

8

不,assert()NDEBUG符号控制:

#ifdef NDEBUG
#define assert(e)   ((void)0)
#else
...

(查看/usr/include/assert.h您是否安装了 Xcode 命令行工具,或者 Xcode.app 包中的其他位置,如果没有)。

于 2013-08-20T16:10:05.770 回答