RMCollection
Objective-C
@protocol RLMCollection <NSFastEnumeration, RLMThreadConfined>
Swift
protocol RLMCollection : NSFastEnumeration, RLMThreadConfined
Realm が管理するオブジェクトの同種コレクション。 準拠しているタイプの例には、 RLMArray
、 RLMSet
、 RLMResults
、 RLMLinkingObjects
などがあります。
-
コレクション内のオブジェクトの数。
宣言
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 で
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
が返されます。戻り値
コレクションに含まれる 型のオブジェクト。
-
コレクション内の最後のオブジェクトを返します。
RMSet は順序付けられていないため、 セットの場合はセット内の任意のオブジェクトが返されます。 セットに複数のオブジェクトが含まれる場合でも、
firstObject
が提供するオブジェクトと異なるオブジェクトである必要はありません。空のコレクションで呼び出されると
nil
が返されます。戻り値
コレクションに含まれる 型のオブジェクト。
-
コレクション内のオブジェクトのインデックスを返します。
オブジェクトがコレクション内に見つからない場合は、
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 によって識別される派生プロパティの値。
-
指定された
value
とkey
を使用して、コレクション内の各オブジェクトでsetValue:forKey:
を呼び出します。警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
宣言
Objective-C
- (void)setValue:(nullable id)value forKey:(nonnull NSString *)key;
Swift
func setValue(_ value: Any?, forKey key: String)
パラメーター
value
オブジェクト値。
key
プロパティの名前。
-
コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは最初のコレクションとは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトを変更するたびに、再度呼び出されます。
ブロックが初めて呼び出されるときに、
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"];
宣言
Objective-C
- (nullable id)minOfProperty:(nonnull NSString *)property;
Swift
func min(ofProperty property: String) -> Any?
パラメーター
property
最小値が必要なプロパティ。
int
、float
、double
、NSDate
タイプのプロパティのみがサポートされています。戻り値
プロパティの最小値、または結果が空の場合は
nil
。 -
コレクション内のすべてのオブジェクトの中で指定されたプロパティの最大(最高)値を返します。
NSNumber *max = [results maxOfProperty:@"age"];
宣言
Objective-C
- (nullable id)maxOfProperty:(nonnull NSString *)property;
Swift
func max(ofProperty property: String) -> Any?
パラメーター
property
最大値が必要なプロパティ。
int
、float
、double
、NSDate
タイプのプロパティのみがサポートされています。戻り値
プロパティの最大値、または結果が空の場合は
nil
。 -
コレクション内のすべてのオブジェクトの指定されたプロパティの値の合計を返します。
NSNumber *sum = [results sumOfProperty:@"age"];
宣言
Objective-C
- (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;
Swift
func sum(ofProperty property: String) -> NSNumber
パラメーター
property
値を合計する必要があるプロパティ。 サポートされているのは、
int
、float
、double
タイプのプロパティのみです。戻り値
指定された プロパティの合計。
-
コレクション内のオブジェクトに対する指定されたプロパティの平均値を返します。
NSNumber *average = [results averageOfProperty:@"age"];
宣言
Objective-C
- (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;
Swift
func average(ofProperty property: String) -> NSNumber?
パラメーター
property
平均値を計算するプロパティ。 サポートされているのは、
int
、float
、double
タイプのプロパティのみです。戻り値
特定のプロパティの平均値。結果が空の場合は
nil
。
-
コレクションが固定されているかどうかを示します。
凍結されたコレクションは不変であり、どのスレッドからでもアクセスできます。 固定されたコレクションから読み取られたオブジェクトも固定されます。
宣言
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