// // MergePolicy.swift // AltStore // // Created by Riley Testut on 7/23/19. // Copyright © 2019 Riley Testut. All rights reserved. // import CoreData import Roxas open class MergePolicy: RSTRelationshipPreservingMergePolicy { open override func resolve(constraintConflicts conflicts: [NSConstraintConflict]) throws { guard conflicts.allSatisfy({ $0.databaseObject != nil }) else { assertionFailure("MergePolicy is only intended to work with database-level conflicts.") return try super.resolve(constraintConflicts: conflicts) } for conflict in conflicts { switch conflict.databaseObject { case let databaseObject as App: // Delete previous permissions for permission in databaseObject.permissions { permission.managedObjectContext?.delete(permission) } default: break } } try super.resolve(constraintConflicts: conflicts) } }