Separated DatabaseManager validation logic into separate method

This commit is contained in:
Riley Testut 2015-12-19 16:28:14 -06:00
parent 8863e8f3d0
commit 25521aad74

View File

@ -232,7 +232,7 @@ private extension DatabaseManager
{
// MARK: - Saving -
private func save()
func save()
{
let backgroundTaskIdentifier = RSTBeginBackgroundTask("Save Database Task")
@ -282,16 +282,12 @@ private extension DatabaseManager
}
}
// MARK: - Notifications -
// MARK: - Validation -
dynamic func managedObjectContextDidSave(notification: NSNotification)
func validateManagedObjectSaveWithUserInfo(userInfo: [NSObject : AnyObject])
{
guard let managedObjectContext = notification.object as? NSManagedObjectContext where managedObjectContext.parentContext == self.validationManagedObjectContext else { return }
self.validationManagedObjectContext.performBlockAndWait {
// Remove deleted games from disk
if let deletedObjects = notification.userInfo?[NSDeletedObjectsKey] as? Set<NSManagedObject>
if let deletedObjects = userInfo[NSDeletedObjectsKey] as? Set<NSManagedObject>
{
let games = deletedObjects.filter({ $0 is Game }).map({ self.validationManagedObjectContext.objectWithID($0.objectID) as! Game })
@ -315,9 +311,17 @@ private extension DatabaseManager
{
self.validationManagedObjectContext.deleteObject(collection)
}
}
// MARK: - Notifications -
dynamic func managedObjectContextDidSave(notification: NSNotification)
{
guard let managedObjectContext = notification.object as? NSManagedObjectContext where managedObjectContext.parentContext == self.validationManagedObjectContext else { return }
self.validationManagedObjectContext.performBlockAndWait {
self.validateManagedObjectSaveWithUserInfo(notification.userInfo ?? [:])
self.save()
}
}
}