【发布时间】:2021-09-28 12:11:44
【问题描述】:
编辑:我已经完全删除了预览,只是在主视图中将对象作为参数传递给视图。我得到了这个:
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)
}
}
【问题讨论】:
-
这个答案stackoverflow.com/questions/57781982/…可能会回答你的问题
-
谢谢@workingdog ...也尝试过,但似乎没有什么不同。不过,我已将其添加到我的帖子中以避免混淆。