diff --git a/Sources/CoreStoreFetchedResultsController.swift b/Sources/CoreStoreFetchedResultsController.swift index 4a1c487..a5802d3 100644 --- a/Sources/CoreStoreFetchedResultsController.swift +++ b/Sources/CoreStoreFetchedResultsController.swift @@ -35,7 +35,7 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll // MARK: Internal @nonobjc - internal convenience init(dataStack: DataStack, fetchRequest: NSFetchRequest, from: From?, sectionBy: SectionBy? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest) -> Void) { + internal convenience init(dataStack: DataStack, fetchRequest: NSFetchRequest, from: From, sectionBy: SectionBy? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest) -> Void) { self.init( context: dataStack.mainContext, @@ -47,33 +47,18 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll } @nonobjc - internal init(context: NSManagedObjectContext, fetchRequest: NSFetchRequest, from: From?, sectionBy: SectionBy? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest) -> Void) { + internal init(context: NSManagedObjectContext, fetchRequest: NSFetchRequest, from: From, sectionBy: SectionBy? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest) -> Void) { - _ = from?.applyToFetchRequest( + _ = from.applyToFetchRequest( fetchRequest, context: context, applyAffectedStores: false ) applyFetchClauses(fetchRequest) - if let from = from { + self.reapplyAffectedStores = { fetchRequest, context in - self.reapplyAffectedStores = { fetchRequest, context in - - return from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context) - } - } - else { - - guard let from = (fetchRequest.entity.flatMap { $0.managedObjectClassName }).flatMap(NSClassFromString).flatMap({ From($0 as! T.Type) }) else { - - CoreStore.abort("Attempted to create a \(CoreStoreFetchedResultsController.self) without a \(cs_typeName(From.self)) clause or an \(cs_typeName(NSEntityDescription.self)).") - } - - self.reapplyAffectedStores = { fetchRequest, context in - - return from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context) - } + return from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context) } super.init( diff --git a/Sources/NSFetchedResultsController+Convenience.swift b/Sources/NSFetchedResultsController+Convenience.swift index b57a961..d4d7252 100644 --- a/Sources/NSFetchedResultsController+Convenience.swift +++ b/Sources/NSFetchedResultsController+Convenience.swift @@ -201,7 +201,7 @@ public extension UnsafeDataTransaction { // MARK: - Private @available(OSX 10.12, *) -fileprivate func createFRC(fromContext context: NSManagedObjectContext, from: From? = nil, sectionBy: SectionBy? = nil, fetchClauses: [FetchClause]) -> NSFetchedResultsController { +fileprivate func createFRC(fromContext context: NSManagedObjectContext, from: From, sectionBy: SectionBy? = nil, fetchClauses: [FetchClause]) -> NSFetchedResultsController { let controller = CoreStoreFetchedResultsController( context: context, diff --git a/Sources/NSFetchedResultsController+ObjectiveC.swift b/Sources/NSFetchedResultsController+ObjectiveC.swift index f37b06a..5c8f6f8 100644 --- a/Sources/NSFetchedResultsController+ObjectiveC.swift +++ b/Sources/NSFetchedResultsController+ObjectiveC.swift @@ -68,12 +68,12 @@ public extension CSUnsafeDataTransaction { // MARK: - Private @available(OSX 10.12, *) -fileprivate func createFRC(fromContext context: NSManagedObjectContext, from: CSFrom? = nil, sectionBy: CSSectionBy?, fetchClauses: [CSFetchClause]) -> NSFetchedResultsController { +fileprivate func createFRC(fromContext context: NSManagedObjectContext, from: CSFrom, sectionBy: CSSectionBy?, fetchClauses: [CSFetchClause]) -> NSFetchedResultsController { let controller = CoreStoreFetchedResultsController( context: context, fetchRequest: CoreStoreFetchRequest().dynamicCast(), - from: from?.bridgeToSwift, + from: from.bridgeToSwift, sectionBy: sectionBy?.bridgeToSwift, applyFetchClauses: { (fetchRequest) in diff --git a/Sources/ObjectMonitor.swift b/Sources/ObjectMonitor.swift index 2436013..e32a177 100644 --- a/Sources/ObjectMonitor.swift +++ b/Sources/ObjectMonitor.swift @@ -272,7 +272,7 @@ public final class ObjectMonitor: Equatable { let fetchedResultsController = CoreStoreFetchedResultsController( context: context, fetchRequest: fetchRequest.dynamicCast(), - from: nil as From?, + from: From([objectID.persistentStore?.configurationName]), applyFetchClauses: Where("SELF", isEqualTo: objectID).applyToFetchRequest )