CarbSetup.swift 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import CoreData
  2. import Foundation
  3. extension Home.StateModel {
  4. // MARK: - Carbs
  5. @MainActor func setupCarbsController() {
  6. carbsControllerDelegate.onContentChange = { [weak self] in
  7. Task { @MainActor in
  8. self?.updateCarbsFromController()
  9. }
  10. }
  11. do {
  12. try carbsController.performFetch()
  13. updateCarbsFromController()
  14. } catch {
  15. debug(.default, "\(DebuggingIdentifiers.failed) Failed to perform carbs fetch: \(error)")
  16. }
  17. }
  18. @MainActor private func updateCarbsFromController() {
  19. guard let objects = carbsController.fetchedObjects else { return }
  20. carbsFromPersistence = objects
  21. }
  22. // MARK: - FPUs
  23. @MainActor func setupFPUController() {
  24. fpuControllerDelegate.onContentChange = { [weak self] in
  25. Task { @MainActor in
  26. self?.updateFPUsFromController()
  27. }
  28. }
  29. do {
  30. try fpuController.performFetch()
  31. updateFPUsFromController()
  32. } catch {
  33. debug(.default, "\(DebuggingIdentifiers.failed) Failed to perform FPU fetch: \(error)")
  34. }
  35. }
  36. @MainActor private func updateFPUsFromController() {
  37. guard let objects = fpuController.fetchedObjects else { return }
  38. fpusFromPersistence = objects
  39. }
  40. }