diff --git a/AltStore/Types/Managed.swift b/AltStore/Types/Managed.swift index 1bce7bb4..425032f8 100644 --- a/AltStore/Types/Managed.swift +++ b/AltStore/Types/Managed.swift @@ -10,23 +10,27 @@ import Foundation import CoreData @propertyWrapper @dynamicMemberLookup -struct Managed +struct Managed { var wrappedValue: ManagedObject { didSet { - self.managedObjectContext = self.wrappedValue.managedObjectContext + self.managedObjectContext = self.managedObject?.managedObjectContext } } - private var managedObjectContext: NSManagedObjectContext? - + var projectedValue: Managed { return self } + private var managedObjectContext: NSManagedObjectContext? + private var managedObject: NSManagedObject? { + return self.wrappedValue as? NSManagedObject + } + init(wrappedValue: ManagedObject) { self.wrappedValue = wrappedValue - self.managedObjectContext = wrappedValue.managedObjectContext + self.managedObjectContext = self.managedObject?.managedObjectContext } subscript(dynamicMember keyPath: KeyPath) -> T