diff --git a/Sources/Internal/CoreStoreFetchedResultsController.swift b/Sources/Internal/CoreStoreFetchedResultsController.swift index 3c01070..bc35a1d 100644 --- a/Sources/Internal/CoreStoreFetchedResultsController.swift +++ b/Sources/Internal/CoreStoreFetchedResultsController.swift @@ -49,10 +49,6 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll @nonobjc internal init(context: NSManagedObjectContext, fetchRequest: NSFetchRequest, from: From? = nil, sectionBy: SectionBy? = nil, applyFetchClauses: (fetchRequest: NSFetchRequest) -> Void) { - CoreStore.assert( - fetchClauses.filter { $0 is OrderBy }.count > 0, - "An \(typeName(NSFetchedResultsController)) requires an OrderBy clause." - ) from?.applyToFetchRequest(fetchRequest, context: context, applyAffectedStores: false) applyFetchClauses(fetchRequest: fetchRequest) diff --git a/Sources/Transactions/UnsafeDataTransaction.swift b/Sources/Transactions/UnsafeDataTransaction.swift index cd34b5b..b1698cf 100644 --- a/Sources/Transactions/UnsafeDataTransaction.swift +++ b/Sources/Transactions/UnsafeDataTransaction.swift @@ -93,9 +93,9 @@ public final class UnsafeDataTransaction: BaseDataTransaction { - Important: Note that unlike `commit()`, `flush()` does not propagate/save updates to the `DataStack` and the persistent store. However, the flushed changes will be seen by children transactions created further from the current transaction (i.e. through `transaction.beginUnsafe()`) - throws: an error thrown from `closure`, or an error thrown by Core Data (usually validation errors or conflict errors) */ - public func flush() throws { + public func flush() { - try self.context.save() + self.context.processPendingChanges() } /** @@ -105,10 +105,10 @@ public final class UnsafeDataTransaction: BaseDataTransaction { - parameter closure: the closure where changes can be made prior to the flush - throws: an error thrown from `closure`, or an error thrown by Core Data (usually validation errors or conflict errors) */ - public func flush(@noescape closure: () throws -> Void) throws { + public func flush(@noescape closure: () throws -> Void) rethrows { try closure() - try self.context.save() + self.context.processPendingChanges() } /**