Swift 自定义视图可以工作,但其预览不会编译

Swift 自定义视图可以工作,但其预览不会编译,swift,core-data,swiftui,swiftui-list,swiftui-previews,Swift,Core Data,Swiftui,Swiftui List,Swiftui Previews,对于我在Github准备的问题: 它是一个具有自定义视图的快捷界面列表: 正如您在上面的屏幕截图中看到的,它工作正常 但是,它的预览不起作用: struct TopRow_Previews: PreviewProvider { static var topEntity = TopEntity(context: PersistenceController.preview.container.viewContext) topEntity.uid = 19265 topEnt

对于我在Github准备的问题:

它是一个具有自定义视图的快捷界面列表:

正如您在上面的屏幕截图中看到的,它工作正常

但是,它的预览不起作用:

struct TopRow_Previews: PreviewProvider {
    static var topEntity = TopEntity(context: PersistenceController.preview.container.viewContext)
    topEntity.uid = 19265
    topEntity.elo = 2659
    topEntity.given = "Alex"
    topEntity.motto = "TODO"
    topEntity.photo = "https://slova.de/words/images/female_happy.png"
    topEntity.avg_score = 18.8
    topEntity.avg_time = "03:06"

    static var previews: some View {
        TopRow(top: topEntity)
            .padding()
            .previewLayout(.sizeThatFits)
    }
}
Xcode报告语法错误
行上的连续声明必须用“;”分隔

这里发生了什么,请帮助我(一个敏捷的新手)理解


我试着在那里放一个分号,但它没有真正起作用。

你不能在
结构或
类的顶层放这样的命令式代码,顶层是为函数和属性声明保留的

您可以将
topEntity
改为一个计算属性,这样您的命令式赋值就可以进入
{}
中,而不存在于顶层:

struct TopRow_Previews: PreviewProvider {
    static var topEntity : TopEntity {
        var topEntity = TopEntity(context: PersistenceController.preview.container.viewContext)
        topEntity.uid = 19265
        topEntity.elo = 2659
        topEntity.given = "Alex"
        topEntity.motto = "TODO"
        topEntity.photo = "https://slova.de/words/images/female_happy.png"
        topEntity.avg_score = 18.8
        topEntity.avg_time = "03:06"
        return topEntity
    }

    static var previews: some View {
        TopRow(top: topEntity)
            .padding()
            .previewLayout(.sizeThatFits)
    }
}
struct TopRow_Previews: PreviewProvider {
    static var topEntity : TopEntity {
        var topEntity = TopEntity(context: PersistenceController.preview.container.viewContext)
        topEntity.uid = 19265
        topEntity.elo = 2659
        topEntity.given = "Alex"
        topEntity.motto = "TODO"
        topEntity.photo = "https://slova.de/words/images/female_happy.png"
        topEntity.avg_score = 18.8
        topEntity.avg_time = "03:06"
        return topEntity
    }

    static var previews: some View {
        TopRow(top: topEntity)
            .padding()
            .previewLayout(.sizeThatFits)
    }
}