【发布时间】:2025-12-21 09:55:07
【问题描述】:
我有几次被抓到把函数代码放在 NSAssert 或 NSParameter 断言中,比如
NSParameterAssert( [self doSomeWork] );
这样做的问题是,当您进行发布构建时,不仅会在测试失败时执行中止的代码从代码中省略,而且我在 () 中的代码也被省略了。
显然这个修复很简单,但在我看来这仍然是错误的,代码的逻辑在测试构建和发布构建之间发生了变化。
我应该明确指出,我只在断言失败是程序员错误的情况下使用这种模式。
【问题讨论】:
-
为了清楚起见,我问我是否应该将此作为 Apple 的错误提出。