create background managed object context

This commit is contained in:
Satindar Dhillon
2022-04-21 15:25:34 -07:00
parent 8e1e7caaf4
commit b494698b68
3 changed files with 14 additions and 1 deletions

View File

@ -76,6 +76,12 @@
ReferencedContainer = "container:Omnivore.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<CommandLineArguments>
<CommandLineArgument
argument = "-com.apple.CoreData.ConcurrencyDebug 1"
isEnabled = "YES">
</CommandLineArgument>
</CommandLineArguments>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"

View File

@ -12,7 +12,7 @@ public class PersistentContainer: NSPersistentContainer {
let model = NSManagedObjectModel(contentsOf: modelURL)!
let container = PersistentContainer(name: "DataModel", managedObjectModel: model)
container.viewContext.automaticallyMergesChangesFromParent = false
container.viewContext.automaticallyMergesChangesFromParent = true
container.viewContext.name = "viewContext"
container.viewContext.mergePolicy = NSMergePolicy.mergeByPropertyObjectTrump
container.viewContext.undoManager = nil

View File

@ -14,13 +14,20 @@ public final class DataService: ObservableObject {
let networker: Networker
let persistentContainer: PersistentContainer
let backgroundContext: NSManagedObjectContext
var subscriptions = Set<AnyCancellable>()
var viewContext: NSManagedObjectContext {
persistentContainer.viewContext
}
public var deletedHighlightsIDs = Set<String>()
public init(appEnvironment: AppEnvironment, networker: Networker) {
self.appEnvironment = appEnvironment
self.networker = networker
self.persistentContainer = PersistentContainer.make()
self.backgroundContext = persistentContainer.newBackgroundContext()
persistentContainer.loadPersistentStores { _, error in
if let error = error {