mirror of
https://github.com/yattee/yattee.git
synced 2024-12-13 22:00:31 +05:30
15 lines
786 B
Swift
15 lines
786 B
Swift
|
import CoreData
|
||
|
|
||
|
extension NSManagedObjectContext {
|
||
|
/// Executes the given `NSBatchDeleteRequest` and directly merges the changes to bring the given managed object context up to date.
|
||
|
///
|
||
|
/// - Parameter batchDeleteRequest: The `NSBatchDeleteRequest` to execute.
|
||
|
/// - Throws: An error if anything went wrong executing the batch deletion.
|
||
|
func executeAndMergeChanges(_ batchDeleteRequest: NSBatchDeleteRequest) throws {
|
||
|
batchDeleteRequest.resultType = .resultTypeObjectIDs
|
||
|
let result = try execute(batchDeleteRequest) as? NSBatchDeleteResult
|
||
|
let changes: [AnyHashable: Any] = [NSDeletedObjectsKey: result?.result as? [NSManagedObjectID] ?? []]
|
||
|
NSManagedObjectContext.mergeChanges(fromRemoteContextSave: changes, into: [self])
|
||
|
}
|
||
|
}
|