【发布时间】:2019-10-22 10:39:34
【问题描述】:
预处理器宏在 SwiftUI 官方教程/视频中很常见,例如:
#if DEBUG
struct ContentView_Previews : PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
那些需要吗?编译器可以肯定地看到 struct 没有在内部使用并省略整个 struct 因为访问修饰符是隐式的 internal 对吗?我认为所有符合PreviewProvider 的东西都可以去掉,但也许不是每个符合条件的对象都是这样,但如果不使用,为什么Apple 决定包含预处理器宏?
我尝试在发布模式下运行它并在派生数据文件夹中找到已编译的类,但我对它一无所知(.o 文件)。 任何人都可以确认我们是否真的需要在发布版本中包含宏以省略未使用的代码(ContentView_Previews 类型不会在代码中的任何地方使用,期望预览在发布版本中无论如何都不会使用)?
【问题讨论】:
标签: swift c-preprocessor swiftui