Я хочу сохранить некоторые данные из представления SwiftUI в модель, чтобы я мог использовать эти данные в другом представлении SwiftUI. Однако я столкнулся с некоторой ошибкой при попытке вызвать класс Model и передать все данные в качестве параметров. В сообщении об ошибке говорится:
Невозможно использовать элемент экземпляра 'Ожидаемая дата окончания' в инициализаторе свойства; инициализаторы свойств запускаются до того, как «self» станет доступным »
Вот мой код SearchBikeDataModel ():
import Foundation
class SearchBikeDataModel: ObservableObject {
@Published var startDate: Date = Date()
@Published var startTime: Date = Date()
@Published var endDate: Date = Date()
@Published var endTime: Date = Date()
@Published var bikeType: String = ""
@Published var collectionPoint: String = ""
@Published var returnPoint: String = ""
init(selectedStartDate: Date, selectedStartTime: Date, selectedEndDate: Date, selectedEndTime: Date, bikeType: String, collectionPoint: String, returnPoint: String) {
self.startDate = selectedStartDate
self.startTime = selectedStartTime
self.endDate = selectedEndDate
self.endTime = selectedEndTime
self.bikeType = bikeType
self.collectionPoint = collectionPoint
self.returnPoint = returnPoint
}
}
А вот код, в котором я пытаюсь передать данные в качестве параметров:
import SwiftUI
struct BikeSearchFormView: View {
@Binding var isDateTimeShown: Bool
@Binding var isEndDateTimePickerShown: Bool
@State var expectedStartDate = Date()
@State var expectedStartTime = Date()
@State var expectedEndDate = Date()
@State var expectedEndTime = Date()
@State var isBikeTypePickerExpand: Bool = false
@State var isDropOffPointPickerExpand: Bool = false
@State var isPickUpPointPickerExpand: Bool = false
@State var selectedBikeType: String = "BIKE TYPE"
@State var selectedDropOffPoint: String = "DROP OFF POINT"
@State var selectedPickUpPoint: String = "PICKUP POINT"
@State var findBikeError: String = ""
@State var isActive: Bool = false
@ObservedObject var bikeTypeViewModel = VehicleTypeViewModel()
@ObservedObject var findBikeViewModel = FindBikeViewModel()
@ObservedObject var dataModel = SearchBikeDataModel(selectedStartDate: expectedStartDate, selectedStartTime: expectedStartTime, selectedEndDate: expectedEndDate, selectedEndTime: expectedEndTime, bikeType: selectedBikeType, collectionPoint: selectedPickUpPoint, returnPoint: selectedDropOffPoint)
var body: some View {
Text("Hello, World")
}
}
Я опустил коды своего пользовательского интерфейса, поскольку вопрос как раз о том, следую ли я правильному способу передачи данных в параметры.