Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extension NSPersistentContainer {
- func modify<T: NSManagedObject>(object: T,
- in closure: @escaping ((T) -> Void),
- completed: (() -> Void)? = nil) {
- let objectID = object.objectID
- let managedObjectContext = object.managedObjectContext
- performBackgroundTask { context in
- if let objectInContext = context.object(with: objectID) as? T {
- closure(objectInContext)
- try? context.save()
- }
- if let managedObjectContext = managedObjectContext {
- managedObjectContext.perform {
- completed?()
- }
- } else {
- DispatchQueue.main.async {
- completed?()
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement