RMSet

Objective-C

@interface RLMSet<RLMObjectType> : NSObject <RLMCollection>

Swift

@_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject

個別のオブジェクトを保存するために使用されるコレクション データ型。

注意

RLMSet はプリミティブとRLMObject型の保存をサポートします。 RLMSetは埋め込み Realm オブジェクトの保存をサポートしていません。

プロパティ

  • セット内のオブジェクトの数。

    宣言

    Objective-C

    @property (nonatomic, readonly) NSUInteger count;

    Swift

    var count: UInt { get }
  • セット内のオブジェクトの型。

    宣言

    Objective-C

    @property (nonatomic, readonly) RLMPropertyType type;

    Swift

    var type: RLMPropertyType { get }
  • コレクション内のオブジェクトがnilになるかどうかを示します。

    宣言

    Objective-C

    @property (nonatomic, readonly, getter=isOptional) BOOL optional;

    Swift

    var isOptional: Bool { get }
  • DNSArray 値としての RMSet 内のオブジェクト。

    宣言

    Objective-C

    @property (nonatomic, readonly) NSArray<RLMObjectType> *_Nonnull allObjects;

    Swift

    var allObjects: [RLMObjectType] { get }
  • セットに含まれるオブジェクトのクラス名。

    typeが RMPropertyTypeObject でない場合は、 nilになります。

    宣言

    Objective-C

    @property (nonatomic, copy, readonly, nullable) NSString *objectClassName;

    Swift

    var objectClassName: String? { get }
  • セットを管理する Realm。 マネージドされていないセットの場合、 nilを返します。

    宣言

    Objective-C

    @property (nonatomic, readonly, nullable) RLMRealm *realm;

    Swift

    var realm: RLMRealm? { get }
  • セットがアクセスできなくなっているかどうかを示します。

    宣言

    Objective-C

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

    Swift

    var isInvalidated: Bool { get }
  • セットが固定されているかどうかを示します。

    凍結されたセットは不変であり、どのスレッドからでもアクセスできます。 凍結されたセットは、管理対象のライブセットで-freezeを呼び出すことによって作成されます。 管理されていないセットは固定されません。

    宣言

    Objective-C

    @property (nonatomic, readonly, getter=isFrozen) BOOL frozen;

    Swift

    var isFrozen: Bool { get }

セット内のオブジェクトの追加、削除、置換

  • オブジェクトがまだ存在しない場合は、セットに追加します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)addObject:(nonnull RLMObjectType)object;

    Swift

    func add(_ object: RLMObjectType)

    パラメーター

    object

    セットに含まれる 型のオブジェクト。

  • 個別のオブジェクトの配列をセットに追加します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)addObjects:(nonnull id<NSFastEnumeration>)objects;

    Swift

    func addObjects(_ objects: any NSFastEnumeration)

    パラメーター

    objects

    セットと同じクラスのオブジェクトを含む、 NSArrayNSSetRLMResultsなどの列挙可能なオブジェクト。

  • セットから指定されたオブジェクトを削除します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)removeObject:(nonnull RLMObjectType)object;

    Swift

    func remove(_ object: RLMObjectType)

    パラメーター

    object

    削除するセット内のオブジェクト。

  • セットからすべてのオブジェクトを削除します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)removeAllObjects;

    Swift

    func removeAllObjects()
  • 受信セットを空にし、別の指定されたセットに含まれる各オブジェクトを追加します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)setSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func setSet(_ set: RLMSet<RLMObjectType>)

    パラメーター

    set

    RMSet のノードは、受信側のセットの内容を置き換えます。

  • 別のセットのメンバーではない各オブジェクトを受信セットから削除します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)intersectSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func intersect(_ set: RLMSet<RLMObjectType>)

    パラメーター

    set

    交差を実行するための RMSet です。

  • 別のセット内の各オブジェクトが存在する場合は、受信セットから削除します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)minusSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func minus(_ set: RLMSet<RLMObjectType>)

    パラメーター

    set

    受信セットから削除するオブジェクトのセット。

  • 別のセット内の各オブジェクトが存在しない場合は、受信セットに追加します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Objective-C

    - (void)unionSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func union(_ set: RLMSet<RLMObjectType>)

    パラメーター

    set

    受信セットに追加するオブジェクトのセット。

セットのクエリ

  • 受信セット内の少なくとも 1 つのオブジェクトが別のセットにも存在するかどうかを示すブール値を返します。

    宣言

    Objective-C

    - (BOOL)intersectsSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func intersects(_ set: RLMSet<RLMObjectType>) -> Bool

    パラメーター

    set

    受信セットを比較するための RMSet です。

    戻り値

    受信セット内の少なくとも 1 つのオブジェクトが OtherSet にも存在する場合は はい、そうでない場合は 存在しません 。

  • 受信セット内のすべてのオブジェクトが別の指定されたセットにも存在するかどうかを示すブール値を返します。

    宣言

    Objective-C

    - (BOOL)isSubsetOfSet:(nonnull RLMSet<RLMObjectType> *)set;

    Swift

    func isSubset(of set: RLMSet<RLMObjectType>) -> Bool

    パラメーター

    set

    受信セットを比較するための RMSet です。

    戻り値

    受信セット内のすべてのオブジェクトが OtherSet にも存在する場合は はい、そうでない場合は 存在しません 。

  • 指定されたオブジェクトがセット内に存在するかどうかを示すブール値を返します。

    宣言

    Objective-C

    - (BOOL)containsObject:(nonnull RLMObjectType)anObject;

    Swift

    func contains(_ anObject: RLMObjectType) -> Bool

    パラメーター

    anObject

    セット内で検索するオブジェクト。

    戻り値

    セット内にオブジェクトが存在する場合は はい、そうでない場合は 。

  • 受信セットを別のセットと比較します。

    宣言

    Objective-C

    - (BOOL)isEqualToSet:(nonnull RLMSet<RLMObjectType> *)otherSet;

    Swift

    func isEqual(to otherSet: RLMSet<RLMObjectType>) -> Bool

    パラメーター

    otherSet

    受信セットを比較するセット。

    戻り値

    OtherSet の内容が受信セットの内容と等しい場合は はい、そうでない場合は ありません 。

セットのセクション化

  • このコレクションを指定されたプロパティ キー パスからソートしてセクションを作成し、その結果をRLMSectionedResultsのインスタンスとして返します。

    宣言

    Objective-C

    - (nonnull RLMSectionedResults *)
        sectionedResultsSortedUsingKeyPath:(nonnull NSString *)keyPath
                                 ascending:(BOOL)ascending
                                  keyBlock:
                                      (nonnull RLMSectionedResultsKeyBlock)keyBlock;

    Swift

    func sectionedResultsSorted(usingKeyPath keyPath: String, ascending: Bool, keyBlock: @escaping RLMSectionedResultsKeyBlock) -> RLMSectionedResults

    パラメーター

    keyPath

    ソートするプロパティ キー パス。

    ascending

    並べ替える方向。

    keyBlock

    結果コレクション内の各要素に対して呼び出されるコールバック。 このコールバックは、 コレクション内の要素のセクション キーを返すものです。

    戻り値

    RLMSectionedResults のインスタンス。

  • このコレクションを指定されたソート記述子の配列からソートしてセクション化し、その結果をRLMSectionedResultsのインスタンスとして返します。

    注意

    プライマリソート記述子は、セクションキーの決定を担当する必要があります。

    宣言

    Objective-C

    - (nonnull RLMSectionedResults *)
        sectionedResultsUsingSortDescriptors:
            (nonnull NSArray<RLMSortDescriptor *> *)sortDescriptors
                                    keyBlock:(nonnull RLMSectionedResultsKeyBlock)
                                                 keyBlock;

    Swift

    func sectionedResults(using sortDescriptors: [RLMSortDescriptor], keyBlock: @escaping RLMSectionedResultsKeyBlock) -> RLMSectionedResults

    パラメーター

    sortDescriptors

    並べ替え対象のRLMSortDescriptorの配列。

    keyBlock

    結果コレクション内の各要素に対して呼び出されるコールバック。 このコールバックは、 コレクション内の要素のセクション キーを返すものです。

    戻り値

    RLMSectionedResults のインスタンス。

notifications

  • セットが変更されるたびに呼び出されるブロックを登録します。

    ブロックは初期セットと非同期に呼び出され、セット内のいずれかのオブジェクト、結果内のオブジェクト、またはセット内のオブジェクトの順序を変更するたびに再度呼び出されます。

    ブロックが初めて呼び出されるときに、 changesパラメータはnilになります。 その後の呼び出しごとに、セット内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによってセット内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、 UITableViewの更新例については、 RLMCollectionChangeのドキュメントを参照してください。

    エラー パラメータは下位互換性のためだけに存在し、常にnilになります。

    通知は標準の実行ループ経由で配信されるため、実行ループが他のアクティビティによってブロックされている間は配信されません。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには初期結果を持つ通知を含めることができます。 たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。

    Person *person = [[Person allObjectsInRealm:realm] firstObject];
    NSLog(@"person.dogs.count: %zu", person.dogs.count); // => 0
    self.token = [person.dogs addNotificationBlock(RLMSet<Dog *> *dogs,
                                                   RLMCollectionChange *changes,
                                                   NSError *error) {
        // Only fired once for the example
        NSLog(@"dogs.count: %zu", dogs.count) // => 1
    }];
    [realm transactionWithBlock:^{
        Dog *dog = [[Dog alloc] init];
        dog.name = @"Rex";
        [person.dogs addObject:dog];
    }];
    // end of run loop execution context
    

    アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで-invalidateを呼び出します。

    警告

    このメソッドは、書込みトランザクション中、または Realm を含む が読み取り専用の場合に呼び出すことができません。

    警告

    このメソッドは、凍結されていないマネージド セットでのみ呼び出せます。

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)addNotificationBlock:
        (nonnull void (^)(RLMSet<RLMObjectType> *_Nullable,
                          RLMCollectionChange *_Nullable, NSError *_Nullable))block;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSet<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void) -> RLMNotificationToken

    パラメーター

    block

    セットが変更されるたびに呼び出されるブロック。

    戻り値

    更新を配信する限り保持する必要があるトークン。

  • セットが変更されるたびに呼び出されるブロックを登録します。

    ブロックは初期セットと非同期に呼び出され、セット内のいずれかのオブジェクト、結果内のオブジェクト、またはセット内のオブジェクトの順序を変更するたびに再度呼び出されます。

    ブロックが初めて呼び出されるときに、 changesパラメータはnilになります。 その後の呼び出しごとに、セット内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによってセット内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、 UITableViewの更新例については、 RLMCollectionChangeのドキュメントを参照してください。

    エラー パラメータは下位互換性のためだけに存在し、常にnilになります。

    通知は指定されたキューに配信されます。 キューがブロックされ、通知がすぐに配信されない場合は、複数の通知が 1 つの通知に統合されます。

    アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで-invalidateを呼び出します。

    警告

    このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。

    警告

    キューはシリアル キューである必要があります。

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:(nonnull void (^)(RLMSet<RLMObjectType> *_Nullable,
                                               RLMCollectionChange *_Nullable,
                                               NSError *_Nullable))block
                       queue:(nullable dispatch_queue_t)queue;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSet<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, queue: dispatch_queue_t?) -> RLMNotificationToken

    パラメーター

    block

    変更が発生するたびに呼び出されるブロック。

    queue

    通知を送信するシリアル キュー。

    戻り値

    更新を配信する限り保持する必要があるトークン。

  • セットが変更されるたびに呼び出されるブロックを登録します。

    ブロックは初期セットと非同期に呼び出され、セット内のいずれかのオブジェクト、結果内のオブジェクト、またはセット内のオブジェクトの順序を変更するたびに再度呼び出されます。

    ブロックが初めて呼び出されるときに、 changesパラメータはnilになります。 その後の呼び出しごとに、セット内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによってセット内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、 UITableViewの更新例については、 RLMCollectionChangeのドキュメントを参照してください。

    エラー パラメータは下位互換性のためだけに存在し、常にnilになります。

    通知は指定されたキューに配信されます。 キューがブロックされ、通知がすぐに配信されない場合は、複数の通知が 1 つの通知に統合されます。

    アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで-invalidateを呼び出します。

    警告

    このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。

    警告

    キューはシリアル キューである必要があります。

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:(nonnull void (^)(RLMSet<RLMObjectType> *_Nullable,
                                               RLMCollectionChange *_Nullable,
                                               NSError *_Nullable))block
                    keyPaths:(nullable NSArray<NSString *> *)keyPaths
                       queue:(nullable dispatch_queue_t)queue;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSet<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?, queue: dispatch_queue_t?) -> RLMNotificationToken

    パラメーター

    block

    変更が発生するたびに呼び出されるブロック。

    keyPaths

    これらのキーパスで発生した変更に対してブロックが呼び出されます。 キー パスが指定されていない場合、プロパティ キー パスごとに通知が配信されます。

    queue

    通知を送信するシリアル キュー。

    戻り値

    更新を配信する限り保持する必要があるトークン。

  • セットが変更されるたびに呼び出されるブロックを登録します。

    ブロックは初期セットと非同期に呼び出され、セット内のいずれかのオブジェクト、結果内のオブジェクト、またはセット内のオブジェクトの順序を変更するたびに再度呼び出されます。

    ブロックが初めて呼び出されるときに、 changesパラメータはnilになります。 その後の呼び出しごとに、セット内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによってセット内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、 UITableViewの更新例については、 RLMCollectionChangeのドキュメントを参照してください。

    エラー パラメータは下位互換性のためだけに存在し、常にnilになります。

    通知は標準の実行ループ経由で配信されるため、実行ループが他のアクティビティによってブロックされている間は配信されません。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには初期結果を持つ通知を含めることができます。 たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。

    アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで-invalidateを呼び出します。

    警告

    このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。

    警告

    キューはシリアル キューである必要があります。

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:(nonnull void (^)(RLMSet<RLMObjectType> *_Nullable,
                                               RLMCollectionChange *_Nullable,
                                               NSError *_Nullable))block
                    keyPaths:(nullable NSArray<NSString *> *)keyPaths;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSet<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?) -> RLMNotificationToken

    パラメーター

    block

    変更が発生するたびに呼び出されるブロック。

    keyPaths

    これらのキーパスで発生した変更に対してブロックが呼び出されます。 キー パスが指定されていない場合、プロパティ キー パスごとに通知が配信されます。

    戻り値

    更新を配信する限り保持する必要があるトークン。

プロパティ値の集計

  • セット内のすべてのオブジェクトの中で指定されたプロパティの最小(最小)値を返します。

    NSNumber *min = [object.setProperty minOfProperty:@"age"];
    

    警告

    このメソッドは、 RLMObjectRLMArrayRLMSet 、およびNSDataプロパティでは使用できません。

    宣言

    Objective-C

    - (nullable id)minOfProperty:(nonnull NSString *)property;

    Swift

    func min(ofProperty property: String) -> Any?

    パラメーター

    property

    最小値が必要なプロパティ。 intfloatdoubleNSDateタイプのプロパティのみがサポートされています。

    戻り値

    プロパティの最小値、またはセットが空の場合はnil

  • セット内のすべてのオブジェクトの中で指定されたプロパティの最大(最高)値を返します。

    NSNumber *max = [object.setProperty maxOfProperty:@"age"];
    

    警告

    このメソッドは、 RLMObjectRLMArrayRLMSet 、およびNSDataプロパティでは使用できません。

    宣言

    Objective-C

    - (nullable id)maxOfProperty:(nonnull NSString *)property;

    Swift

    func max(ofProperty property: String) -> Any?

    パラメーター

    property

    最大値が必要なプロパティ。 intfloatdoubleNSDateタイプのプロパティのみがサポートされています。

    戻り値

    プロパティの最大値、またはセットが空の場合はnil

  • セット内のすべてのオブジェクトにわたる指定されたプロパティの個別の値の合計を返します。

    NSNumber *sum = [object.setProperty sumOfProperty:@"age"];
    

    警告

    このメソッドは、 RLMObjectRLMArrayRLMSet and NSData` プロパティでは使用できません。

    宣言

    Objective-C

    - (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;

    Swift

    func sum(ofProperty property: String) -> NSNumber

    パラメーター

    property

    値を合計する必要があるプロパティ。 サポートされているのは、 intfloatdoubleタイプのプロパティのみです。

    戻り値

    指定された プロパティの合計。

  • セット内のオブジェクトに対する指定されたプロパティの平均値を返します。

    NSNumber *average = [object.setProperty averageOfProperty:@"age"];
    

    警告

    このメソッドは、 RLMObjectRLMSetRLMArray 、およびNSDataプロパティでは使用できません。

    宣言

    Objective-C

    - (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;

    Swift

    func average(ofProperty property: String) -> NSNumber?

    パラメーター

    property

    平均値を計算するプロパティ。 サポートされているのは、 intfloatdoubleタイプのプロパティのみです。

    戻り値

    特定のプロパティの平均値。セットが空の場合はnil

Freeze

  • このセットの固定(不変)スナップショットを返します。

    固定されたコピーは、このセットが現在含まれているデータと同じデータを含む不変のセットですが、含まれている Realm に書込み (write) が行われた場合は更新されません。 ライブセットと違い、固定セットにはどのスレッドからでもアクセスできます。

    警告

    このメソッドは、書込みトランザクション中、または Realm を含む が読み取り専用の場合に呼び出すことができません。

    警告

    このメソッドは、管理対象のセットでのみ呼び出せます。

    警告

    Realm で書込みトランザクションを実行中に固定されたセットを長時間保持すると、Realm ファイルのサイズが大きくなる可能性があります。 詳しくは、 RLMRealmConfiguration.maximumNumberOfActiveVersionsを参照してください。

    宣言

    Objective-C

    - (nonnull instancetype)freeze;

    Swift

    func freeze() -> Self
  • この固定されたコレクションのライブ バージョンを返します。

    このメソッドは、同じ固定コレクションのライブ コピーへの参照を解決します。 ライブ コレクションで呼び出されると、 は自分自身を返します。

    宣言

    Objective-C

    - (nonnull instancetype)thaw;

    Swift

    func thaw() -> Self

利用できないメソッド

  • なし

    RMSet を直接作成することはできません

    -[RLMSet init] は、 RLMSetを直接作成できないため、利用できません。 RLMSetRLMObject上の プロパティは、アクセス時に遅延作成されます。

    宣言

    Objective-C

    - (nonnull instancetype)init;
  • なし

    RMSet は直接作成できません

    +[RLMSet new] は、 RLMSetを直接作成できないため、利用できません。 RLMSetRLMObject上の プロパティは、アクセス時に遅延作成されます。

    宣言

    Objective-C

    + (nonnull instancetype)new;