我有几次把功能代码放在NSAssert或NSParameter断言中,比如
NSParameterAssert( [self doSomeWork] );
问题在于,当您执行发布构建时,如果测试失败,则代码中的代码会被省略,但是()中的代码也会被省略。
显然这个修复很简单,但对我来说这仍然是错误的,代码的逻辑在测试版本和发布版本之间都有所改变。
我应该说清楚我只使用这种模式,如果断言失败则是程序员错误。
答案 0 :(得分:1)
就个人而言,我更喜欢AssertMacros,它保证代码将被执行,但不使用断言。
http://www.opensource.apple.com/source/xnu/xnu-1456.1.26/EXTERNAL_HEADERS/AssertMacros.h