From 2f08e4a0068688210a53323fa2292950d5735486 Mon Sep 17 00:00:00 2001 From: Robin Kutesa Date: Mon, 1 Jun 2026 01:38:19 +0300 Subject: [PATCH] Fix build errors: Self.kXxx refs and MainActor isolation - Remove leftover Self. prefix on instance storage keys in save() - Mark TaskViewModel and WorkoutViewModel @MainActor so init() can safely access AuthManager.shared without isolation violations Co-Authored-By: Kutesir --- KisaniCal/Models/ExerciseModels.swift | 9 +++++---- KisaniCal/Models/TaskItem.swift | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/KisaniCal/Models/ExerciseModels.swift b/KisaniCal/Models/ExerciseModels.swift index a866558..1bc6ae1 100644 --- a/KisaniCal/Models/ExerciseModels.swift +++ b/KisaniCal/Models/ExerciseModels.swift @@ -170,6 +170,7 @@ let exerciseSFSymbol: [String: String] = Dictionary( ) // MARK: - Workout View Model +@MainActor class WorkoutViewModel: ObservableObject { @Published var programs: [WorkoutProgram] @Published var schedule: [Int: UUID] @@ -278,12 +279,12 @@ class WorkoutViewModel: ObservableObject { private func save() { if let data = try? JSONEncoder().encode(programs) { - UserDefaults.standard.set(data, forKey: Self.kPrograms) + UserDefaults.standard.set(data, forKey: kPrograms) } let schedDict = schedule.reduce(into: [String: String]()) { $0[String($1.key)] = $1.value.uuidString } - UserDefaults.standard.set(schedDict, forKey: Self.kSchedule) - UserDefaults.standard.set(activeProgramId.uuidString, forKey: Self.kActivePid) - UserDefaults.standard.set(workoutDates, forKey: Self.kWorkoutDates) + UserDefaults.standard.set(schedDict, forKey: kSchedule) + UserDefaults.standard.set(activeProgramId.uuidString, forKey: kActivePid) + UserDefaults.standard.set(workoutDates, forKey: kWorkoutDates) } func logWorkoutCompleted(on date: Date = Date()) { diff --git a/KisaniCal/Models/TaskItem.swift b/KisaniCal/Models/TaskItem.swift index d2932d9..ac0fc61 100644 --- a/KisaniCal/Models/TaskItem.swift +++ b/KisaniCal/Models/TaskItem.swift @@ -55,6 +55,7 @@ enum TaskColor: String, Codable { } // MARK: - Task View Model +@MainActor class TaskViewModel: ObservableObject { @Published var tasks: [TaskItem]