I switch to using Data with Transient computed property and it still is showing the same error logged to the console:
import SwiftData
@Model
final class ProtocolMedication {
var uuid: UUID = UUID()
var createdAt: Date = Date()
var frequency: SchedulingFrequency = SchedulingFrequency.atRegularIntervals
var interval: SchedulingInterval = SchedulingInterval(days: 1)
var startDate: Date = Date()
var timesData: Data?
var dayOfWeekSelection: DayOfWeekSelection = DayOfWeekSelection(days: [1])
var injectionRotationConfig: InjectionRotationConfig = InjectionRotationConfig()
var medicationConcentration: MedicationConcentration = MedicationConcentration(value: nil, unit: nil)
var medication: Medication?
@Relationship(deleteRule: .cascade, inverse: \ScheduledDose.protocolMed)
var _scheduledDoses: [ScheduledDose]?
@Relationship(deleteRule: .cascade, inverse: \DoseLog.protocolMed)
var _doseLogs: [DoseLog]?
@Transient
var times: [SchedulingTime] {
get {
guard let data = timesData else { return [] }
return (try? PropertyListDecoder().decode([SchedulingTime].self, from: data)) ?? []
}
set {
timesData = try? PropertyListEncoder().encode(newValue)
}
}
var scheduledDoses: [ScheduledDose] {
_scheduledDoses ?? []
}
var doseLogs: [DoseLog] {
_doseLogs ?? []
}
init(frequency: SchedulingFrequency, interval: SchedulingInterval = SchedulingInterval(days: 1), startDate: Date, times: [SchedulingTime] = [], dayOfWeekSelection: DayOfWeekSelection = DayOfWeekSelection(days: [1]), injectionRotationConfig: InjectionRotationConfig = InjectionRotationConfig(), medicationConcentration: MedicationConcentration, medication: Medication) {
self.frequency = frequency
self.interval = interval
self.startDate = startDate
self.times = times
self.dayOfWeekSelection = dayOfWeekSelection
self.injectionRotationConfig = injectionRotationConfig
self.medicationConcentration = medicationConcentration
self.medication = medication
}
}
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags: