【发布时间】:2017-06-10 11:53:33
【问题描述】:
我能找到的所有关于 Swift 断言的解释都解释了 assert* 被 -O 抛出,但 precondition* 被保留,除非设置了 -Ounchecked。
但是,我们现在将 whole-module optimization -wmo 作为发布版本的新默认值。
启用全模块优化时是否保留precondition* 断言?
【问题讨论】:
-
developer.apple.com/reference/swift/1541112-assert 和 developer.apple.com/reference/swift/1540960-precondition 准确列出检查条件的时间。我不认为全模块优化有什么不同,但是您可以通过添加失败条件并运行程序来轻松地自己测试它。
-
我不了解 AppCode,但在 Xcode 构建设置中你有“-O -whole-module-optimization”。所以这些是不同的选项,我会假设断言/前提条件的文档仍然是正确的。
-
@MartinR 是的,AppCode 中的设置让我很困惑。 FWIW.
标签: swift compiler-optimization assertions compiler-options