What I'm trying to do is add an insert to an empty array variable in my view model through an if else statement. However when I try to add an inset, I get an error saying that my view model array variable is a get-only property.
My question is how can I make my variable in a read and write format so I can add inserts to it? Thanks!
// ViewModel Variable
var selectedTimesOfDay: [String] {
return jobService.selectedTimesOfDay
}
// My Function
@objc func handleContinue() {
guard let jobService = jobService else { return }
let viewModel = JobServiceViewModel(jobService: jobService)
if morningButton.isSelected {
viewModel.selectedTimesOfDay.insert("Morning", at: 0)
}
}
I had to put my view model variable in a setter and getter so it can be writable. Then set an empty array in the initializer so I can add an insert in my controller.
// View Model
var _selectedTimesOfDay: [String]
var selectTimesOfDay: [String] {
set {
_selectedTimesOfDay = newValue
}
get {
return _selectedTimesOfDay
}
}
init(jobService: JobService) {
self.jobService = jobService
self._selectedDate = ""
self._selectedTimesOfDay = []
}