mirror of
https://github.com/JohnEstropia/CoreStore.git
synced 2026-04-10 19:26:51 +02:00
cache fetchClauses in property so closures do not retain them indeterminately
This commit is contained in:
@@ -891,6 +891,7 @@ public final class ListMonitor<T: NSManagedObject> {
|
|||||||
object: self
|
object: self
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
self.fetchClauses = fetchClauses
|
||||||
|
|
||||||
self.taskGroup.notify(.Main) { [weak self] () -> Void in
|
self.taskGroup.notify(.Main) { [weak self] () -> Void in
|
||||||
|
|
||||||
@@ -902,7 +903,7 @@ public final class ListMonitor<T: NSManagedObject> {
|
|||||||
strongSelf.fetchedResultsControllerDelegate.enabled = false
|
strongSelf.fetchedResultsControllerDelegate.enabled = false
|
||||||
|
|
||||||
let fetchRequest = strongSelf.fetchedResultsController.fetchRequest
|
let fetchRequest = strongSelf.fetchedResultsController.fetchRequest
|
||||||
for clause in fetchClauses {
|
for clause in strongSelf.fetchClauses {
|
||||||
|
|
||||||
clause.applyToFetchRequest(fetchRequest)
|
clause.applyToFetchRequest(fetchRequest)
|
||||||
}
|
}
|
||||||
@@ -1019,6 +1020,7 @@ public final class ListMonitor<T: NSManagedObject> {
|
|||||||
self.sectionIndexTransformer = { $0 }
|
self.sectionIndexTransformer = { $0 }
|
||||||
}
|
}
|
||||||
self.transactionQueue = transactionQueue
|
self.transactionQueue = transactionQueue
|
||||||
|
self.fetchClauses = fetchClauses
|
||||||
|
|
||||||
fetchedResultsControllerDelegate.handler = self
|
fetchedResultsControllerDelegate.handler = self
|
||||||
fetchedResultsControllerDelegate.fetchedResultsController = fetchedResultsController
|
fetchedResultsControllerDelegate.fetchedResultsController = fetchedResultsController
|
||||||
@@ -1045,7 +1047,7 @@ public final class ListMonitor<T: NSManagedObject> {
|
|||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
self.refetch(fetchClauses)
|
self.refetch(self.fetchClauses)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1068,7 +1070,7 @@ public final class ListMonitor<T: NSManagedObject> {
|
|||||||
|
|
||||||
if previousStores != currentStores {
|
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 var observerForDidChangePersistentStore: NotificationObserver!
|
||||||
private let taskGroup = GCDGroup()
|
private let taskGroup = GCDGroup()
|
||||||
private let transactionQueue: GCDQueue
|
private let transactionQueue: GCDQueue
|
||||||
|
private var fetchClauses: [FetchClause]
|
||||||
|
|
||||||
private var willChangeListKey: Void?
|
private var willChangeListKey: Void?
|
||||||
private var didChangeListKey: Void?
|
private var didChangeListKey: Void?
|
||||||
|
|||||||
Reference in New Issue
Block a user