From 9d5248e2e898ae706489d4de374812b1dd2900e5 Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 15 Nov 2022 16:50:12 -0600 Subject: [PATCH] Supports non-NSManagedObjects for @Managed properties This allows us to use @Managed with properties that may or may not be NSManagedObjects at runtime (e.g. protocols). If they are, Managed will keep strong reference to context like before. --- AltStore/Types/Managed.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AltStore/Types/Managed.swift b/AltStore/Types/Managed.swift index 2b150dfd..b485d551 100644 --- a/AltStore/Types/Managed.swift +++ b/AltStore/Types/Managed.swift @@ -11,12 +11,15 @@ import CoreData @propertyWrapper @dynamicMemberLookup struct Managed +struct Managed { var wrappedValue: ManagedObject { didSet { self.managedObjectContext = self.managedObject?.managedObjectContext + self.managedObjectContext = self.managedObject?.managedObjectContext } } + var projectedValue: Managed { return self @@ -31,6 +34,7 @@ struct Managed { self.wrappedValue = wrappedValue self.managedObjectContext = self.managedObject?.managedObjectContext + self.managedObjectContext = self.managedObject?.managedObjectContext } subscript(dynamicMember keyPath: KeyPath) -> T