RMThreadセーフリファレンス

Objective-C


@interface RLMThreadSafeReference<__covariant Confined : id <RLMThreadConfined>>
    : NSObject

Swift

@_nonSendable(_assumed) class RLMThreadSafeReference<Confined> : NSObject, @unchecked Sendable where Confined : RLMThreadConfined

スレッド間で渡されることを意図したオブジェクトで、スレッド定義されたオブジェクトへのスレッドセーフな参照を含みます。

別のスレッド上のターゲット Realm のスレッドセーフな参照を解決するには、 -[RLMRealm resolveThreadSafeReference:]にを渡します。

警告

RLMThreadSafeReferenceオブジェクトは最大 1 回で解決される必要があります。 RLMThreadSafeReferenceを解決しないと、参照が再割り当てされるまで、Realm のソース バージョンが固定されます。

注意

すべての参照が解決または割り当てが完了するまで、ソース Realm のバージョンのデータが保持されるため、有効期間の短いRLMThreadSafeReferenceを優先します。

詳細は、次を参照してください:

RLMThreadConfined

詳細は、次を参照してください:

-[RLMRealm resolveThreadSafeReference:]

  • スレッド認証されたオブジェクトへのスレッドセーフな参照を作成します。

    注意

    スレッド定義オブジェクトをこのコンストラクターに渡した後も、引き続き使用してアクセスできます。

    宣言

    Objective-C

    + (nonnull instancetype)referenceWithThreadConfined:
        (nonnull Confined)threadConfined;

    Swift

    convenience init(threadConfined: Confined)

    パラメーター

    threadConfined

    スレッドセーフな参照を作成するためのスレッド定義オブジェクト。

  • 参照を解決する試みがすでに発生しているため、参照を解決できなくなるかどうかを示します。 参照は一度だけ解決できます。

    宣言

    Objective-C

    @property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;

    Swift

    var isInvalidated: Bool { get }

利用できないメソッド

  • なし

    RMThreadセーフリファレンスは直接作成できません

    -[RLMThreadSafeReference init] は、 RLMThreadSafeReferenceを直接作成できないため、利用できません。 RLMThreadSafeReferenceインスタンスは-[RLMRealm resolveThreadSafeReference:]を呼び出して取得する必要があります。

    宣言

    Objective-C

    - (nonnull instancetype)init;
  • なし

    RMThreadセーフリファレンスは直接作成できません

    -[RLMThreadSafeReference new] は、 RLMThreadSafeReferenceを直接作成できないため、利用できません。 RLMThreadSafeReferenceインスタンスは-[RLMRealm resolveThreadSafeReference:]を呼び出して取得する必要があります。

    宣言

    Objective-C

    + (nonnull instancetype)new;