是否应该处理NSAssert的方式作为错误

时间:2012-09-20 04:22:33

标签: ios xcode macos macros

我有几次把功能代码放在NSAssert或NSParameter断言中,比如

NSParameterAssert( [self doSomeWork] );

问题在于,当您执行发布构建时,如果测试失败,则代码中的代码会被省略,但是()中的代码也会被省略。

显然这个修复很简单,但对我来说这仍然是错误的,代码的逻辑在测试版本和发布版本之间都有所改变。

我应该说清楚我只使用这种模式,如果断言失败则是程序员错误。

1 个答案:

答案 0 :(得分:1)

就个人而言,我更喜欢AssertMacros,它保证代码将被执行,但不使用断言。

http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/EXTERNAL_HEADERS/AssertMacros.h