Objects of types which conform to
ThreadConfined can be managed by a Realm, which will make
them bound to a thread-specific
Realm instance. Managed objects must be explicitly exported
and imported to be passed between threads.
Managed instances of objects conforming to this protocol can be converted to a thread-safe
reference for transport between threads by passing to the
Note that only types defined by Realm can meaningfully conform to this protocol, and defining new
classes which attempt to conform to it will not make them work with
The Realm which manages the object, or
nilif the object is unmanaged.
Unmanaged objects are not confined to a thread and cannot be passed to methods expecting a
Indicates if the object can no longer be accessed because it is now invalid.
Indicates if the object is frozen.
Frozen objects are not confined to their source thread. Forming a
ThreadSafeReferenceto a frozen object is allowed, but is unlikely to be useful.
Returns a frozen snapshot of this object.
Unlike normal Realm live objects, the frozen copy can be read from any thread, and the values read will never update to reflect new writes to the Realm. Frozen collections can be queried like any other Realm collection. Frozen objects cannot be mutated, and cannot be observed for change notifications.
Unmanaged Realm objects cannot be frozen.
WarningHolding onto a frozen object for an extended period while performing write transaction on the Realm may result in the Realm file growing to large sizes. See
Realm.Configuration.maximumNumberOfActiveVersionsfor more information.
Returns a live (mutable) reference of this object. Will return self if called on an already live object.