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。
