From 275f6df8c148399bba29dd3674b0cee071ab15e6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 30 May 2018 01:19:46 -0700 Subject: [PATCH] Fix some minor issues with saving CoreData objects --- Limelight/AppDelegate.m | 12 +++++++----- Limelight/Database/DataManager.m | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Limelight/AppDelegate.m b/Limelight/AppDelegate.m index 9744fb1..e2078da 100644 --- a/Limelight/AppDelegate.m +++ b/Limelight/AppDelegate.m @@ -91,12 +91,14 @@ static NSOperationQueue* mainQueue; - (void)saveContext { - NSError *error = nil; - NSManagedObjectContext *managedObjectContext = self.managedObjectContext; + NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; if (managedObjectContext != nil) { - if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { - Log(LOG_E, @"Critical database error: %@, %@", error, [error userInfo]); - } + [managedObjectContext performBlock:^{ + NSError *error = nil; + if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { + Log(LOG_E, @"Critical database error: %@, %@", error, [error userInfo]); + } + }]; } } diff --git a/Limelight/Database/DataManager.m b/Limelight/Database/DataManager.m index 5b28be6..3bc742b 100644 --- a/Limelight/Database/DataManager.m +++ b/Limelight/Database/DataManager.m @@ -31,7 +31,7 @@ } _managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; - [_managedObjectContext setPersistentStoreCoordinator:_appDelegate.persistentStoreCoordinator]; + [_managedObjectContext setParentContext:[_appDelegate managedObjectContext]]; return self; } @@ -175,7 +175,7 @@ - (void) saveData { NSError* error; - if (![_managedObjectContext save:&error]) { + if ([_managedObjectContext hasChanges] && ![_managedObjectContext save:&error]) { Log(LOG_E, @"Unable to save hosts to database: %@", error); }