RMCollection

Objective-C

@protocol RLMCollection <NSFastEnumeration, RLMThreadConfined>

Swift

protocol RLMCollection : NSFastEnumeration, RLMThreadConfined

Realm が管理するオブジェクトの同種コレクション。 準拠しているタイプの例には、 RLMArrayRLMSetRLMResultsRLMLinkingObjectsなどがあります。

プロパティ

  • コレクション内のオブジェクトの数。

    宣言

    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 }
  • コレクションに含まれるオブジェクトのクラス名。

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

    宣言

    Objective-C

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

    Swift

    var objectClassName: String? { get }
  • このコレクションを管理する Realm(存在する場合)。

    宣言

    Objective-C

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

    Swift

    var realm: RLMRealm? { get }
  • コレクションが有効でなくなっているかどうかを示します。

    管理用 Realm でinvalidateが呼び出されると、コレクションが無効になります。 管理されていないコレクションは無効化されません。

    宣言

    Objective-C

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

    Swift

    var isInvalidated: Bool { get }

コレクションからオブジェクトへのアクセス

  • 指定されたインデックスにあるオブジェクトを返します。

    宣言

    Objective-C

    - (nonnull id)objectAtIndex:(NSUInteger)index;

    Swift

    func object(at index: UInt) -> Any

    パラメーター

    index

    検索するインデックス。

    戻り値

    コレクションに含まれる 型のオブジェクト。

  • 指定されたインデックスセットによって指定されたインデックスにあるコレクション内のオブジェクトを含む配列を返します。 インデックスセットにコレクションの境界外のインデックスが含まれている場合は、 nilが返されます。

    宣言

    Objective-C

    - (nullable NSArray *)objectsAtIndexes:(nonnull NSIndexSet *)indexes;

    Swift

    optional func objects(at indexes: IndexSet) -> [Any]?

    パラメーター

    indexes

    オブジェクトを検索するコレクション内のインデックス。

    戻り値

    指定されたインデックスにあるオブジェクト。

  • コレクション内の最初のオブジェクトを返します。

    RMSet は順序付けられていないため、 セットの場合はセット内の任意のオブジェクトが返されます。 セットに複数のオブジェクトが含まれる場合でも、 lastObjectが提供するオブジェクトと異なるオブジェクトである必要はありません。

    空のコレクションで呼び出されるとnilが返されます。

    宣言

    Objective-C

    - (nullable id)firstObject;

    Swift

    optional func firstObject() -> Any?

    戻り値

    コレクションに含まれる 型のオブジェクト。

  • コレクション内の最後のオブジェクトを返します。

    RMSet は順序付けられていないため、 セットの場合はセット内の任意のオブジェクトが返されます。 セットに複数のオブジェクトが含まれる場合でも、 firstObjectが提供するオブジェクトと異なるオブジェクトである必要はありません。

    空のコレクションで呼び出されるとnilが返されます。

    宣言

    Objective-C

    - (nullable id)lastObject;

    Swift

    optional func lastObject() -> Any?

    戻り値

    コレクションに含まれる 型のオブジェクト。

  • コレクション内のオブジェクトのインデックスを返します。

    オブジェクトがコレクション内に見つからない場合は、 NSNotFoundを返します。

    宣言

    Objective-C

    - (NSUInteger)indexOfObject:(nonnull id)object;

    Swift

    optional func index(of object: Any) -> UInt

    パラメーター

    object

    オブジェクト( objectClassNameセレクターから返されるのと同じ型)。

  • 述語に一致するコレクション内の最初のオブジェクトのインデックスを返します。

    宣言

    Objective-C

    - (NSUInteger)indexOfObjectWhere:(nonnull NSString *)predicateFormat, ...;

    パラメーター

    predicateFormat

    述語形式の string 。オプションで、その後に変数の数の引数が続きます。

    戻り値

    オブジェクトのインデックス。または、オブジェクトがコレクション内に見つからない場合はNSNotFound

  • 述語に一致するコレクション内の最初のオブジェクトのインデックスを返します。

    宣言

    Objective-C

    - (NSUInteger)indexOfObjectWithPredicate:(nonnull NSPredicate *)predicate;

    Swift

    optional func indexOfObject(with predicate: NSPredicate) -> UInt

    パラメーター

    predicate

    オブジェクトをフィルタリングする述語。

    戻り値

    オブジェクトのインデックス。または、オブジェクトがコレクション内に見つからない場合はNSNotFound

コレクションのクエリ

  • コレクション内の指定された述語に一致するすべてのオブジェクトを返します。

    これは、管理対象のコレクションでのみサポートされています。

    宣言

    Objective-C

    - (nonnull RLMResults *)objectsWhere:(nonnull NSString *)predicateFormat, ...;

    パラメーター

    predicateFormat

    述語形式の string 。オプションで、その後に変数の数の引数が続きます。

    戻り値

    指定された述語に一致するオブジェクトを含むRLMResults

  • コレクション内の指定された述語に一致するすべてのオブジェクトを返します。

    これは、管理対象のコレクションでのみサポートされています。

    宣言

    Objective-C

    - (nonnull RLMResults *)objectsWithPredicate:(nonnull NSPredicate *)predicate;

    Swift

    func objects(with predicate: NSPredicate) -> RLMResults

    パラメーター

    predicate

    オブジェクトをフィルタリングする述語。

    戻り値

    指定された述語に一致するオブジェクトを含むRLMResults

  • コレクションからソートされたRLMResultsを返します。

    これは、管理対象のコレクションでのみサポートされています。

    宣言

    Objective-C

    - (nonnull RLMResults *)sortedResultsUsingKeyPath:(nonnull NSString *)keyPath
                                            ascending:(BOOL)ascending;

    Swift

    func sortedResults(usingKeyPath keyPath: String, ascending: Bool) -> RLMResults

    パラメーター

    keyPath

    ソートする keyPath 。

    ascending

    並べ替える方向。

    戻り値

    指定されたキー パスでソートされたRLMResults

  • コレクションからソートされたRLMResultsを返します。

    これは、管理対象のコレクションでのみサポートされています。

    宣言

    Objective-C

    - (nonnull RLMResults *)sortedResultsUsingDescriptors:
        (nonnull NSArray<RLMSortDescriptor *> *)properties;

    Swift

    func sortedResults(using properties: [RLMSortDescriptor]) -> RLMResults

    パラメーター

    properties

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

    戻り値

    指定されたプロパティでソートされたRLMResults

  • コレクションから個別のRLMResultsを返します。

    これは、管理対象のコレクションでのみサポートされています。

    宣言

    Objective-C

    - (nonnull RLMResults *)distinctResultsUsingKeyPaths:
        (nonnull NSArray<NSString *> *)keyPaths;

    Swift

    func distinctResults(usingKeyPaths keyPaths: [String]) -> RLMResults

    パラメーター

    keyPaths

    使用されるキー パスは異なる結果を生成します

    戻り値

    指定されたキー パスに基づいて個別のRLMResultsが作成されます

  • コレクションの各オブジェクトでkeyを使用してvalueForKey:を呼び出した結果を含むNSArrayを返します。

    宣言

    Objective-C

    - (nullable id)valueForKey:(nonnull NSString *)key;

    Swift

    func value(forKey key: String) -> Any?

    パラメーター

    key

    プロパティの名前。

    戻り値

    結果を含むNSArray

  • 指定されたキー パスによって識別される派生プロパティの値を返します。

    宣言

    Objective-C

    - (nullable id)valueForKeyPath:(nonnull NSString *)keyPath;

    Swift

    func value(forKeyPath keyPath: String) -> Any?

    パラメーター

    keyPath

    関係.プロパティ(1 つ以上の関係を持つ)形式のキー パス。

    戻り値

    keyPath によって識別される派生プロパティの値。

  • 指定されたvaluekeyを使用して、コレクション内の各オブジェクトでsetValue:forKey:を呼び出します。

    警告

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

    宣言

    Objective-C

    - (void)setValue:(nullable id)value forKey:(nonnull NSString *)key;

    Swift

    func setValue(_ value: Any?, forKey key: String)

    パラメーター

    value

    オブジェクト値。

    key

    プロパティの名前。

notifications

  • コレクションが変更されるたびに呼び出されるブロックを登録します。

    ブロックは最初のコレクションとは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトを変更するたびに、再度呼び出されます。

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

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

    ブロックが呼び出される時点で、コレクション オブジェクトは完全に評価され、最新の状態になります。同じスレッドで書込みトランザクションを実行したり、 -[RLMRealm refresh]を明示的に呼び出したりしない限り、アクセスは実行されませんブロッキング機能。

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

    RMResults *results = [Dog allObjects] DNSLog(@"dogs.count:%z",dogs.count) // == 0 、dogs.count)。 // => 1 }] は、 [realm transactionWithBlock:^{dog *dog =[[Dog allloc] init] のdomain.name = @"Rex" [realm addObject:dog]/ } は、 // 実行ループ実行コンテキストの終了

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

    警告

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

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)addNotificationBlock:
        (nonnull void (^)(RLMResults *_Nullable, RLMCollectionChange *_Nullable,
                          NSError *_Nullable))block;

    Swift

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

    パラメーター

    block

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

    戻り値

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

  • コレクションが変更されるたびに呼び出されるブロックを登録します。

    ブロックは最初のコレクションとは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトを変更するたびに、再度呼び出されます。

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

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

    ブロックが呼び出される時点で、コレクション オブジェクトは完全に評価され、最新の状態になります。同じスレッドで書込みトランザクションを実行したり、 -[RLMRealm refresh]を明示的に呼び出したりしない限り、アクセスは実行されませんブロッキング機能。

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

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

    警告

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

    警告

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

    宣言

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:(nonnull void (^)(RLMResults *_Nullable,
                                               RLMCollectionChange *_Nullable,
                                               NSError *_Nullable))block
                       queue:(nullable dispatch_queue_t)queue;

    Swift

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

    パラメーター

    block

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

    queue

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

    戻り値

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

  • コレクションが変更されるたびに呼び出されるブロックを登録します。

    ブロックは最初のコレクションとは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトを変更するたびに、再度呼び出されます。

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

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

    ブロックが呼び出される時点で、コレクション オブジェクトは完全に評価され、最新の状態になります。同じスレッドで書込みトランザクションを実行したり、 -[RLMRealm refresh]を明示的に呼び出したりしない限り、アクセスは実行されませんブロッキング機能。

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

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

    警告

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

    警告

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

    宣言

    Objective-C

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

    Swift

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

    パラメーター

    block

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

    queue

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

    keyPaths

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

    戻り値

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

セクション化された結果

  • このコレクションを指定されたプロパティ キー パスからソートしてセクションを作成し、その結果を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 のインスタンス。

プロパティ値の集計

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

    NSNumber *min = [results minOfProperty:@"age"];
    

    警告

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

    宣言

    Objective-C

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

    Swift

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

    パラメーター

    property

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

    戻り値

    プロパティの最小値、または結果が空の場合はnil

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

    NSNumber *max = [results maxOfProperty:@"age"];
    

    警告

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

    宣言

    Objective-C

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

    Swift

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

    パラメーター

    property

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

    戻り値

    プロパティの最大値、または結果が空の場合はnil

  • コレクション内のすべてのオブジェクトの指定されたプロパティの値の合計を返します。

    NSNumber *sum = [results sumOfProperty:@"age"];
    

    警告

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

    宣言

    Objective-C

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

    Swift

    func sum(ofProperty property: String) -> NSNumber

    パラメーター

    property

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

    戻り値

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

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

    NSNumber *average = [results averageOfProperty:@"age"];
    

    警告

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

    宣言

    Objective-C

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

    Swift

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

    パラメーター

    property

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

    戻り値

    特定のプロパティの平均値。結果が空の場合はnil

Freeze

  • コレクションが固定されているかどうかを示します。

    凍結されたコレクションは不変であり、どのスレッドからでもアクセスできます。 固定されたコレクションから読み取られたオブジェクトも固定されます。

    宣言

    Objective-C

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

    Swift

    var isFrozen: Bool { get }
  • このコレクションの固定(不変)スナップショットを返します。

    固定されたコピーは、このコレクションに現在含まれているデータと同じデータを含む不変のコレクションですが、含まれている 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