ListObserver
public protocol ListObserver : AnyObject
Implement the ListObserver protocol to observe changes to a list of NSManagedObjects. ListObservers may register themselves to a ListMonitor‘s addObserver(_:) method:
let monitor = dataStack.monitorList(
From<Person>(),
OrderBy(.ascending("lastName"))
)
monitor.addObserver(self)
-
The
NSManagedObjecttype for the observed listDeclaration
Swift
associatedtype ListEntityType : DynamicObject -
listMonitorWillChange(_:Default implementationsourceIdentifier: ) Handles processing just before a change to the observed list occurs. (Optional) The default implementation does nothing.
Default Implementation
Declaration
Swift
func listMonitorWillChange( _ monitor: ListMonitor<ListEntityType>, sourceIdentifier: Any? )Parameters
monitorthe
ListMonitormonitoring the list being observedsourceIdentifieran optional identifier provided by the transaction source
-
listMonitorWillChange(_:Default implementation) Handles processing just before a change to the observed list occurs. (Optional) The default implementation does nothing.
Default Implementation
Declaration
Swift
func listMonitorWillChange( _ monitor: ListMonitor<ListEntityType> )Parameters
monitorthe
ListMonitormonitoring the list being observed -
listMonitorDidChange(_:Default implementationsourceIdentifier: ) Handles processing right after a change to the observed list occurs. (Required)
Default Implementation
Declaration
Swift
func listMonitorDidChange( _ monitor: ListMonitor<ListEntityType>, sourceIdentifier: Any? )Parameters
monitorthe
ListMonitormonitoring the object being observedsourceIdentifieran optional identifier provided by the transaction source
-
Handles processing right after a change to the observed list occurs. (Required)
Declaration
Swift
func listMonitorDidChange( _ monitor: ListMonitor<ListEntityType> )Parameters
monitorthe
ListMonitormonitoring the object being observed -
listMonitorWillRefetch(_:Default implementationsourceIdentifier: ) This method is broadcast from within the
ListMonitor‘srefetch(...)method to let observers prepare for the internalNSFetchedResultsController’s pending change to its predicate, sort descriptors, etc. (Optional)Important
AllListMonitoraccess betweenlistMonitorWillRefetch(_:)andlistMonitorDidRefetch(_:)will raise and assertion. The actual refetch will happen after theNSFetchedResultsController’s lastcontrollerDidChangeContent(_:)notification completes.Default Implementation
Declaration
Swift
func listMonitorWillRefetch( _ monitor: ListMonitor<ListEntityType>, sourceIdentifier: Any? )Parameters
monitorthe
ListMonitormonitoring the object being observedsourceIdentifieran optional identifier provided by the transaction source
-
listMonitorWillRefetch(_:Default implementation) This method is broadcast from within the
ListMonitor‘srefetch(...)method to let observers prepare for the internalNSFetchedResultsController’s pending change to its predicate, sort descriptors, etc. (Optional)Important
AllListMonitoraccess betweenlistMonitorWillRefetch(_:)andlistMonitorDidRefetch(_:)will raise and assertion. The actual refetch will happen after theNSFetchedResultsController’s lastcontrollerDidChangeContent(_:)notification completes.Default Implementation
Declaration
Swift
func listMonitorWillRefetch( _ monitor: ListMonitor<ListEntityType> )Parameters
monitorthe
ListMonitormonitoring the object being observed -
listMonitorDidRefetch(_:Default implementationsourceIdentifier: ) After the
ListMonitor‘srefetch(...)method is called, this method is broadcast after theNSFetchedResultsController’s lastcontrollerDidChangeContent(_:)notification completes. (Required)Important
WhenlistMonitorDidRefetch(_:)is called it should be assumed that allListMonitor’s previous data have been reset, including counts, objects, and persistent stores.Default Implementation
Declaration
Swift
func listMonitorDidRefetch( _ monitor: ListMonitor<ListEntityType>, sourceIdentifier: Any? )Parameters
monitorthe
ListMonitormonitoring the object being observedsourceIdentifieran optional identifier provided by the transaction source
-
After the
ListMonitor‘srefetch(...)method is called, this method is broadcast after theNSFetchedResultsController’s lastcontrollerDidChangeContent(_:)notification completes. (Required)Important
WhenlistMonitorDidRefetch(_:)is called it should be assumed that allListMonitor’s previous data have been reset, including counts, objects, and persistent stores.Declaration
Swift
func listMonitorDidRefetch( _ monitor: ListMonitor<ListEntityType> )Parameters
monitorthe
ListMonitormonitoring the object being observed
View on GitHub
ListObserver Protocol Reference