【问题标题】:How do you get SwiftUI Previews to work when Codegen is in ClassDefinition or Category/Extension?当 Codegen 处于 ClassDefinition 或 Category/Extension 中时,如何让 SwiftUI 预览工作?
【发布时间】:2020-07-25 20:19:27
【问题描述】:

我有一个使用核心数据和 xcdatamodeld 文件的视图,其中包含 Item 结构的定义。如果我使用 Xcode 为 Item 生成文件并手动管理它们,预览效果很好。但是,当我在其他任何一种形式中使用 Codegen 时,都会收到错误消息,指出整个结构未定义。这会阻止预览工作。

代码:

struct ArchiveView: View {
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    @FetchRequest(entity: Item.entity(), sortDescriptors: []) var fetchedResults: FetchedResults<Item>
    
    var body: some View {
        return NavigationView {
            List(fetchedResults, id: \.self ) { (fetchedResult: Item) in
                return PurchaseView(name: fetchedResults.name price: fetchedResults.price, purchaseDate: fetchedResults.date)
            }
        }.navigationBarTitle("Order")
    }
}

Item+CoreDataClass 和 Item+CoreDataProperties 都丢失了,因为它们是由 xcode 自动生成的。

我现在正在使用手动 Codegen 来查看预览,但我很好奇是否可以使用其他选项。如何在核心数据文件中使用 Class Defintion Codegen 并且仍然能够使用 SwiftUI 预览?

【问题讨论】:

    标签: core-data swiftui


    【解决方案1】:

    经过一些测试,xcode 代码生成器本身似乎有问题。每当我至少一次将代码生成器更改为除类定义之外的任何内容时,都会中断与预览的链接。

    解决方法是创建一个新项目并复制旧文件。

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多