2011-09-07 181 views
1

我已经搜索,但无法找到(或如果)我可以在xcode 4/ios 5.0中的c assert()之后跨越或继续。我正在使用C++而不是objective-c。我是否需要定义自己的断言才能实现这一目标?如何在ios/xcode中声明c后继续执行或继续执行?

谢谢〜

+0

需要更多信息。断言检查什么?断言是在你的代码中还是在你链接的代码中? –

+0

您的应用程序是否停止在'assert()'中运行? – Nekto

+0

如何编译NDEBUG? – stefaanv

回答

1

断言通常不会被忽略。他们在那里让程序员与其他程序员沟通,“这永远不会发生”。如果您好奇如果继续经过断言会发生什么情况,请将其注释掉并查看您的程序在通常失败后的行为。

0

assert() S中的目的是停止执行(和/或把你扔到一个调试器),当被断言条件为假。因此,它不会在断言之后“继续”,因为它表示违反了某些先决条件/不变条件,这些条件/不变条件总会导致后来的不良事件(tm)。

0

“assert(expr)”只是(NDEBUG未定义)的简写形式“if(expr == 0)abort();”。也许这是一个比使用assert更好的方法(没有放弃())。