ListObserver
public protocol ListObserver : AnyObject
Implement the ListObserver
protocol to observe changes to a list of NSManagedObject
s. ListObserver
s may register themselves to a ListMonitor
‘s addObserver(_:)
method:
let monitor = dataStack.monitorList(
From<Person>(),
OrderBy(.ascending("lastName"))
)
monitor.addObserver(self)
-
The
NSManagedObject
type 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
monitor
the
ListMonitor
monitoring the list being observedsourceIdentifier
an 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
monitor
the
ListMonitor
monitoring 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
monitor
the
ListMonitor
monitoring the object being observedsourceIdentifier
an 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
monitor
the
ListMonitor
monitoring 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
AllListMonitor
access 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
monitor
the
ListMonitor
monitoring the object being observedsourceIdentifier
an 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
AllListMonitor
access 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
monitor
the
ListMonitor
monitoring 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
monitor
the
ListMonitor
monitoring the object being observedsourceIdentifier
an 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
monitor
the
ListMonitor
monitoring the object being observed