Jer*_*emy 27 xcode swift swiftui
在我的 SwiftUI 应用程序中,我将一些示例模型对象放在 Xcode 的“预览内容”文件夹中。我只在我的 SwiftUI 中访问它们PreviewProvider。我的理解是这个文件夹中的代码/资产仅用于在Canvas中进行预览。我的预览工作正常。我正在使用 Xcode 11.6 (11E708)。
但是,当我去存档我的应用程序时,它失败了,因为它找不到这些示例模型对象。我的印象PreviewProvider是,从 Xcode 11 开始,代码并未构建到最终二进制文件中。请参阅Xcode 11 发行说明中的此问题和此屏幕截图。
(奇怪的是,我能够使用 Release 配置进行编译。只是 Archive 失败了。)
作为一种解决方法,我可以将#if DEBUG/#endif包装器放在我PreviewProvider的周围,但上面的屏幕截图表明这不是必需的。
我是否误解了“预览内容”文件夹的工作原理?
编辑:没关系,这种方法“有效”,但预览代码仍在最终存档中,因此它实际上没有任何帮助。
示例(特定于我自己的用例):
struct PreviewData: PreviewProvider {
static var previews: some View {
Text("This is test data for use in other previews.")
}
// Use enums for namespacing if desired
enum Choices {
static let deals = Choice(id: UUID().uuidString, text: "I want the best deals.", iconName: "bestDealsIcon")
static let technology = Choice(id: UUID().uuidString, text: "I love technology!", iconName: "technologyIcon")
}
Run Code Online (Sandbox Code Playgroud)
然后我就可以PreviewData.Choices.deals在其他PreviewProviders中访问了。
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |