Parameters

The block will be asynchronously called with the initial results, and then
called again after each write transaction which changes either any of the
objects in the collection, or which objects are in the collection.

At the time when the block is called, the collection object will be fully
evaluated and up-to-date, and as long as you do not perform a write
transaction on the same thread or explicitly call realm.refresh(),
accessing it will never perform blocking work.

Notifications are delivered via the standard run loop, and so can’t be
delivered while the run loop is blocked by other activity. When
notifications can’t be delivered instantly, multiple notifications may be
coalesced into a single notification. This can include the notification
with the initial collection. For example, the following code performs a write
transaction immediately after adding the notification block, so there is no
opportunity for the initial notification to be delivered first. As a
result, the initial notification will reflect the state of the Realm after
the write transaction.