Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F12272692
NSManagedObjectContext+ExecuteAndMergeChanges.swift
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
894 B
Subscribers
None
NSManagedObjectContext+ExecuteAndMergeChanges.swift
View Options
import
CoreData
extension
NSManagedObjectContext
{
/// Executes the given `NSBatchDeleteRequest` and directly merges the changes to bring the given
/// managed object context up to date.
///
/// Credit: https://www.avanderlee.com/swift/nsbatchdeleterequest-core-data/
///
/// - Parameter batchDeleteRequest: The `NSBatchDeleteRequest` to execute.
/// - Throws: An error if anything went wrong executing the batch deletion.
public
func
executeAndMergeChanges
(
using
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
])
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Nov 6, 5:25 AM (1 d, 18 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3467598
Attached To
rWFSUI WriteFreely SwiftUI
Event Timeline
Log In to Comment