我认为这是一个简单的问题,但却令人挠头。 我得到一个“。。。。has no initializers”错误,而实际上有初始化器。 请参见代码。。。
数据结构
class PatientData: Identifiable, ObservableObject
{
let id = UUID()
@Published var patientName: String = "Name"
@Published var patientAge: String = "Age"
@Published var patientDOB: String = "DOB"
@Published var patientPhone: String = "Phone"
init(patientName: String, patientAge: String, patientDOB: String, patientPhone: String)
}
内容视图
struct ContentView: View
{
@ObservedObject var patient = PatientData() // "PatientData has no accessible initializers"
.
.
.
注意:
PatientData()
等价于:
PatientData.init()
这意味着如果您想以这种方式创建患者数据:
@ObservedObject var patient = PatientData()
您需要提供匹配的init方法(它可以为空,因为您的所有@published
属性都已有默认值):
init() { }
此外,初始值设定项需要一个主体。 不能只声明一个init方法:
init(patientName: String, patientAge: String, patientDOB: String, patientPhone: String)
您还需要添加一个主体:
init(patientName: String, patientAge: String, patientDOB: String, patientPhone: String) {
// here you assign parameters etc.
}