SwiftData报错@Model requires an initializer be provided for ‘PiggyBank’ (from macro ‘Model’)
SwiftData报错@Model requires an initializer be provided for ‘PiggyBank’ (from macro ‘Model’)

SwiftData报错@Model requires an initializer be provided for ‘PiggyBank’ (from macro ‘Model’)

SwiftData创建@Model模型时,发生报错。

@Model
class PiggyBank {
    var name: String
    @Relationship(deleteRule: .cascade)
    var records: [SavingsRecord] = []
}

Xcode报错:

@Model requires an initializer be provided for 'PiggyBank' (from macro 'Model')

这个错误是SwiftData框架在使用@Model宏时产生的。表示 PiggyBank 类需要提供一个初始化器(initializer)。

因为当@Model 宏标记一个类时,SwiftData 要求这个类必须有一个明确的初始化器来设置所有属性的初始值。

解决方案:

给PiggyBank添加一个初始化器。

@Model
class PiggyBank {
    var name: String
    @Relationship(deleteRule: .cascade)
    var records: [SavingsRecord] = []
    
   init(name: String) {
       self.name = name
   }
}

注意:所有存储属性都需要在初始化器中赋值,可选属性可以初始化为nil。

   

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

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

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