Merge branch 'develop' into corestore2_develop

# Conflicts:
#	Sources/Observing/ListMonitor.swift
This commit is contained in:
John Rommel Estropia
2016-03-30 21:40:21 +09:00
4 changed files with 17 additions and 13 deletions

View File

@@ -55,7 +55,7 @@ internal final class CoreStoreFetchedResultsController<T: NSManagedObject>: NSFe
if let from = from {
self.reapplyAffectedStores = {
self.reapplyAffectedStores = { fetchRequest, context in
return from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context)
}
@@ -67,7 +67,7 @@ internal final class CoreStoreFetchedResultsController<T: NSManagedObject>: NSFe
fatalError("Attempted to create an \(typeName(NSFetchedResultsController)) without a From clause or an NSEntityDescription.")
}
self.reapplyAffectedStores = {
self.reapplyAffectedStores = { fetchRequest, context in
return from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context)
}
@@ -83,7 +83,7 @@ internal final class CoreStoreFetchedResultsController<T: NSManagedObject>: NSFe
internal func performFetchFromSpecifiedStores() throws {
if !self.reapplyAffectedStores() {
if !self.reapplyAffectedStores(fetchRequest: self.fetchRequest, context: self.managedObjectContext) {
CoreStore.log(
.Warning,
@@ -93,8 +93,13 @@ internal final class CoreStoreFetchedResultsController<T: NSManagedObject>: NSFe
try self.performFetch()
}
deinit {
self.delegate = nil
}
// MARK: Private
private let reapplyAffectedStores: () -> Bool
private let reapplyAffectedStores: (fetchRequest: NSFetchRequest, context: NSManagedObjectContext) -> Bool
}

View File

@@ -80,7 +80,7 @@ internal extension NSManagedObjectContext {
var result = SaveResult(hasChanges: false)
self.performBlockAndWait { [unowned self] () -> Void in
self.performBlockAndWait {
guard self.hasChanges else {
@@ -124,7 +124,7 @@ internal extension NSManagedObjectContext {
internal func saveAsynchronouslyWithCompletion(completion: ((result: SaveResult) -> Void) = { _ in }) {
self.performBlock { () -> Void in
self.performBlock {
guard self.hasChanges else {

View File

@@ -891,6 +891,7 @@ public final class ListMonitor<T: NSManagedObject> {
object: self
)
}
self.fetchClauses = fetchClauses
self.taskGroup.notify(.Main) { [weak self] () -> Void in
@@ -902,7 +903,7 @@ public final class ListMonitor<T: NSManagedObject> {
self.fetchedResultsControllerDelegate.enabled = false
let fetchRequest = self.fetchedResultsController.fetchRequest
for clause in fetchClauses {
for clause in self.fetchClauses {
clause.applyToFetchRequest(fetchRequest)
}
@@ -1019,6 +1020,7 @@ public final class ListMonitor<T: NSManagedObject> {
self.sectionIndexTransformer = { $0 }
}
self.transactionQueue = transactionQueue
self.fetchClauses = fetchClauses
fetchedResultsControllerDelegate.handler = self
fetchedResultsControllerDelegate.fetchedResultsController = fetchedResultsController
@@ -1045,7 +1047,7 @@ public final class ListMonitor<T: NSManagedObject> {
return
}
self.refetch(fetchClauses)
self.refetch(self.fetchClauses)
}
)
@@ -1068,7 +1070,7 @@ public final class ListMonitor<T: NSManagedObject> {
if previousStores != currentStores {
self.refetch(fetchClauses)
self.refetch(self.fetchClauses)
}
}
@@ -1130,6 +1132,7 @@ public final class ListMonitor<T: NSManagedObject> {
private var observerForDidChangePersistentStore: NotificationObserver!
private let taskGroup = GCDGroup()
private let transactionQueue: GCDQueue
private var fetchClauses: [FetchClause]
private var willChangeListKey: Void?
private var didChangeListKey: Void?