Swift 自定义视图可以工作,但其预览不会编译
对于我在Github准备的问题: 它是一个具有自定义视图的快捷界面列表: 正如您在上面的屏幕截图中看到的,它工作正常 但是,它的预览不起作用: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
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)
}
}