Advertisement
Guest User

Untitled

a guest
Jul 20th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.85 KB | None | 0 0
  1. extension NSPersistentContainer {
  2.  
  3.     func modify<T: NSManagedObject>(object: T,
  4.                                     in closure: @escaping ((T) -> Void),
  5.                                     completed: (() -> Void)? = nil) {
  6.         let objectID = object.objectID
  7.         let managedObjectContext = object.managedObjectContext
  8.         performBackgroundTask { context in
  9.             if let objectInContext = context.object(with: objectID) as? T {
  10.                 closure(objectInContext)
  11.                 try? context.save()
  12.             }
  13.  
  14.             if let managedObjectContext = managedObjectContext {
  15.                 managedObjectContext.perform {
  16.                     completed?()
  17.                 }
  18.             } else {
  19.                 DispatchQueue.main.async {
  20.                     completed?()
  21.                 }
  22.             }
  23.         }
  24.     }
  25.  
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement