【发布时间】:2015-02-08 12:57:59
【问题描述】:
我在 Swift 中测试了断言,但我有点困惑。你能解释一下assert、assertionFailure和fatalError函数之间的区别吗?
我知道 @noreturn 属性(nicely explained by Seven Oglesby),但我不明白这些函数何时评估以及何时被忽略。
函数assert 和fatalError 仅在调试模式下发生,我测试了这种行为,这是真的。但是assertionFailure 也会在发布配置中停止程序。在文档中停留:
发生致命错误,程序执行应在调试模式下停止。在优化的构建中,这是一个小问题。
那我就不明白了,为什么在非调试模式下对这个方法的评估不被忽略。有人有这方面的经验吗?
【问题讨论】:
标签: swift assert assertions