初始化SwiftUI预览中的对象



编辑:我已经完全删除了预览,只是将对象作为参数从主视图传递到视图中。我得到这个:

Cannot convert value of type 'GoOsc.GpInstanceModel.Type' to expected argument type 'GoOsc.GpInstanceModel'

我的理解是,预览需要它使用的任何@EnvironmentObject参数的默认值。。。

struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView().environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}

此代码弹出。。。

// Missing arguments for parameters 'gpInstanceMain', 'gpInstanceBackup' in call

它要求我的自定义对象类型的两个变量,在主体中这样设置。。。

var gpInstanceMain: GoOsc.GpInstanceModel
var gpInstanceBackup: GoOsc.GpInstanceModel

为一些字符串设置默认值很容易,但我不知道在这种情况下该怎么办。它超出了范围,因为它是预览,所以我无法访问填充的对象以用作预览。

所以我的问题是如何初始化我的对象";手工制作";?

这是它派生自的结构。。。

struct GpInstanceModel {
var gpSongName: String
var gpSongNumber: String
var gpSongPartName: Array<String>
var gpSongPartNumber: Array<String>
var gpCurrentSongPartName: String
var gpCurrentSongPartNumber: String
init() {
gpSongName = ""
gpSongNumber = ""
gpSongPartName = Array(repeating: "", count: 8)
gpSongPartNumber = Array(repeating: "", count: 8)
gpCurrentSongPartName = ""
gpCurrentSongPartNumber = ""
}
}

Xcode建议(在<>中(

struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView(gpInstanceMain: <#GoOsc.GpInstanceModel#>, gpInstanceBackup: <#GoOsc.GpInstanceModel#>).environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}

这个怎么样:

struct GigView_Previews: PreviewProvider {
static var previews: some View {
GigView(gpInstanceMain: GpInstanceModel(), gpInstanceBackup: GpInstanceModel())
.environmentObject(GoOsc())
.preferredColorScheme(.dark)
}
}

最新更新