mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
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.
This commit is contained in:
@@ -11,12 +11,15 @@ import CoreData
|
||||
|
||||
@propertyWrapper @dynamicMemberLookup
|
||||
struct Managed<ManagedObject>
|
||||
struct Managed<ManagedObject>
|
||||
{
|
||||
var wrappedValue: ManagedObject {
|
||||
didSet {
|
||||
self.managedObjectContext = self.managedObject?.managedObjectContext
|
||||
self.managedObjectContext = self.managedObject?.managedObjectContext
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var projectedValue: Managed<ManagedObject> {
|
||||
return self
|
||||
@@ -31,6 +34,7 @@ struct Managed<ManagedObject>
|
||||
{
|
||||
self.wrappedValue = wrappedValue
|
||||
self.managedObjectContext = self.managedObject?.managedObjectContext
|
||||
self.managedObjectContext = self.managedObject?.managedObjectContext
|
||||
}
|
||||
|
||||
subscript<T>(dynamicMember keyPath: KeyPath<ManagedObject, T>) -> T
|
||||
|
||||
Reference in New Issue
Block a user