Open
Description
AppDelegate:
import Foundation
import RouterService
import RouterServiceInterface
import CoreData
extension AppDelegate {
func registerDependencies() {
routerService.register(dependencyFactory: {
AppDelegate.shared.persistentContainer.viewContext
}, forType: NSManagedObjectContext.self)
}
}
import RouterService
import RouterServiceInterface
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
static let shared = UIApplication.shared.delegate as? AppDelegate ?? AppDelegate()
private(set) var persistentContainer = myContainer
let routerService = RouterService()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
createPersistentStoreContainer { container in
self.persistentContainer = container
}
...
// Register Dependencies
registerDependencies()
return true
}
Usage:
import CoreData
import RouterServiceInterface
final class ProfileDashboardViewModel {
// MARK: - Properties
let navigationLeftIconResource: ImageName
let title: String
let employeeID: String
let employeeName: String
lazy private(set) var employeeProfile: EmployeeProfile = {
if let profile = EmployeeProfile.fetch(for: self.employeeID, in: self.managedObjectContext) {
return profile
}
let employeeProfile = EmployeeProfile(context: managedObjectContext)
employeeProfile.employeeID = self.employeeID
employeeProfile.name = self.employeeName
return employeeProfile
}()
@Dependency var managedObjectContext: NSManagedObjectContext
Here getting the following error:
Fatal error: Attempted to use Dependency without resolving it first!
Also when I put a breakpoint inside the register(dependencyFactory: {}
closure it never hits the breakpoint.
Metadata
Metadata
Assignees
Labels
No labels