[ is called] when the managed object is about to be deleted, typically used for cleaning up resources or manually managing relationships. Note that this method is triggered before . If the deletion operation fails due to validation failure, changes made in this method may be rolled back.
[...]
However, because these operations are extensions of managed object subclasses, if you don't build subclasses or don't operate through specific types, these methods won't be called. For example, during batch operations, specific managed object subclasses are usually not involved, so these lifecycle methods won't be called.
Although SwiftData's default storage implementation is based on Core Data, it doesn't declare managed object subclasses for each entity. Therefore, SwiftData doesn't provide similar functionality -- these notification timings are unique to Core Data.
[...]
Unlike context notifications, [Persistent History Tracking] or SwiftData History doesn't include specific change information in the notification. Developers need to retrieve changes that occurred after a specific time from the database through code to obtain this data.