Swift Can';t用“初始化”初始化类;如果;
我试图使用Swift Can';t用“初始化”初始化类;如果;,swift,initialization,Swift,Initialization,我试图使用if条件初始化一个类,但出现以下错误“从初始化器返回,而不初始化所有存储的属性” 我在做一个SwiftUI项目 class StationCombined: Identifiable, ObservableObject { let information: BixiStationInformationViewModel let data: BixiStationDataViewModel init(data: BixiStationDataViewModel
if
条件初始化一个类,但出现以下错误“从初始化器返回,而不初始化所有存储的属性”
我在做一个SwiftUI项目
class StationCombined: Identifiable, ObservableObject {
let information: BixiStationInformationViewModel
let data: BixiStationDataViewModel
init(data: BixiStationDataViewModel, information: BixiStationInformationViewModel ) {
if data.station_id == information.station_id {
self.data = data
self.information = information
}
}
// Error: Return from initializer without initializing all stored properties
...
}
class StationCombinedListViewModel: ObservableObject {
@Published var stationsCombined = [BixiStationDataViewModel]()
}
如何处理条件语句?在
init
中,必须初始化所有属性。在init
中,只有在if
成功时,才会初始化属性
似乎您需要一个可失败的init
:
init?(data: BixiStationDataViewModel, information: BixiStationInformationViewModel) {
guard data.station_id == information.station_id else { return nil }
self.data = data
self.information = information
...
}
如果无法创建对象,则可失败的初始值设定项返回可选值nil
,如果init?
成功,则返回包装值
有关更多信息,请参阅
init
中的。中的故障初始化程序部分,您必须初始化所有属性。在init
中,只有在if
成功时,才会初始化属性
似乎您需要一个可失败的init
:
init?(data: BixiStationDataViewModel, information: BixiStationInformationViewModel) {
guard data.station_id == information.station_id else { return nil }
self.data = data
self.information = information
...
}
如果无法创建对象,则可失败的初始值设定项返回可选值nil
,如果init?
成功,则返回包装值
有关更多信息,请参阅。中的故障初始化程序部分。谢谢!已经修好了,汉克斯!已经修好了