Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Can';t用“初始化”初始化类;如果;_Swift_Initialization - Fatal编程技术网

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?
成功,则返回包装值


有关更多信息,请参阅。

中的故障初始化程序部分。

谢谢!已经修好了,汉克斯!已经修好了