Xcode报错:Missing argument for parameter ‘backingData’ in call
Xcode报错:Missing argument for parameter ‘backingData’ in call

Xcode报错:Missing argument for parameter ‘backingData’ in call

在Xcode预览时,尝试初始化User类报错。

struct EditUserView: View {
    @Bindable var user: User
    var body: some View {
        ...
    }
}

#Preview {
    EditUserView(user: User())
}

这个报错的原因为User类是一个SwiftData模型类,因此默认初始化器会要求传递一个backingData参数。

@Model
class User {
    var name: String
    var city: String
    var joinDate: Date
    ...
}

解决方案为,提供一个User实例,以及配置ModelConfigurationModelContainer

#Preview {
    do {
        let config = ModelConfiguration(isStoredInMemoryOnly: true)
        let container = try ModelContainer(for: User.self, configurations: config)
        let user = User(name: "Taylor Swift", city: "Nashville", joinDate: .now)
        return EditUserView(user: user)
            .modelContainer(container)
    } catch {
        return Text("Failed to create container: \(error.localizedDescription)")
    }
}

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注