Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jonathanduty/64a27382ffe8c441c59da290ffb0206b to your computer and use it in GitHub Desktop.
Save jonathanduty/64a27382ffe8c441c59da290ffb0206b to your computer and use it in GitHub Desktop.
NSManagedObjectContext+Extensions.swift
import CoreData
public extension NSManagedObjectContext {
@discardableResult func saveToStore() -> NSError? {
var currentContext: NSManagedObjectContext? = self
var error: NSError? = nil
var hasChanges = true
while let context = currentContext, (error == nil && hasChanges) {
context.performAndWait {
hasChanges = context.hasChanges
if hasChanges {
do {
try context.save()
}
catch(let saveError) {
error = saveError as NSError
}
}
}
currentContext = context.parent
}
return error
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment