RMResults
Objective-C
@interface RLMResults<RLMObjectType>
: NSObject <RLMCollection, NSFastEnumeration>
Swift
@_nonSendable(_assumed) class RLMResults<RLMObjectType> : NSObject, RLMCollection, NSFastEnumeration where RLMObjectType : AnyObject
RLMResults
は、オブジェクト クエリから返される Realm の自動更新コンテナ タイプです。 これは、クエリの結果をオブジェクトのコレクションの形式で表します。
RLMResults
は、 RLMObject
およびRLMArray
と同じ述語を使用してクエリできます。また、クエリを連鎖させて結果をさらにフィルタリングできます。
RLMResults
は、現在のスレッドでの書込みトランザクション中など、現在のスレッド上の Realm の現在の状態を常に反映します。 これに対する 1 つの例外は、 for...in
高速列挙型を使用している場合です。この列挙型が開始されると、列挙中にフィルターによって除外されるようにオブジェクトが削除または変更された場合でも、クエリに一致したオブジェクトは常に列挙されます。
RLMResults
は、最初にアクセスされたときに遅延評価されるため、クエリの結果が要求された場合にのみクエリを実行します。 つまり、データのソートやフィルタリングのために一時的なRLMResults
を複数連鎖させても、中間状態を処理する追加作業は実行されません。
結果が評価されるか、通知ブロックが追加されると、結果は早期に最新状態に維持され、可能な場合は常にバックグラウンド スレッドで最新の状態を維持するための作業が実行されます。
RLMResults
を直接インスタンス化することはできません。
-
結果コレクション内のオブジェクトの数。
宣言
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, getter=isOptional) BOOL optional;
Swift
var isOptional: Bool { get set }
-
結果コレクションに含まれるオブジェクトのクラス名。
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 RLMObjectType)objectAtIndex:(NSUInteger)index;
Swift
func object(at index: UInt) -> RLMObjectType
パラメーター
index
検索するインデックス。
戻り値
結果のコレクションに含まれる 型のオブジェクト。
-
指定されたインデックスセットによって指定されたインデックスの結果内のオブジェクトを含む配列を返します。 インデックスセットに配列の境界外のインデックスが含まれている場合は、
nil
が返されます。宣言
Objective-C
- (nullable NSArray<RLMObjectType> *)objectsAtIndexes: (nonnull NSIndexSet *)indexes;
Swift
func objects(at indexes: IndexSet) -> [RLMObjectType]?
パラメーター
indexes
オブジェクトを検索する結果内のインデックス。
戻り値
指定されたインデックスにあるオブジェクト。
-
結果のコレクション内の最初のオブジェクトを返します。
空の結果コレクションで呼び出されると
nil
が返されます。宣言
Objective-C
- (nullable RLMObjectType)firstObject;
Swift
func firstObject() -> RLMObjectType?
戻り値
結果のコレクションに含まれる 型のオブジェクト。
-
結果のコレクション内の最後のオブジェクトを返します。
空の結果コレクションで呼び出されると
nil
が返されます。宣言
Objective-C
- (nullable RLMObjectType)lastObject;
Swift
func lastObject() -> RLMObjectType?
戻り値
結果のコレクションに含まれる 型のオブジェクト。
-
結果コレクション内のオブジェクトのインデックスを返します。
オブジェクトが結果コレクションに見つからない場合は、
NSNotFound
を返します。宣言
Objective-C
- (NSUInteger)indexOfObject:(nonnull RLMObjectType)object;
Swift
func index(of object: RLMObjectType) -> UInt
パラメーター
object
オブジェクト(
objectClassName
セレクターから返されるのと同じ型)。 -
述語に一致する結果コレクション内の最初のオブジェクトのインデックスを返します。
宣言
Objective-C
- (NSUInteger)indexOfObjectWhere:(nonnull NSString *)predicateFormat, ...;
パラメーター
predicateFormat
述語形式の string 。オプションで、その後に変数の数の引数が続きます。
戻り値
オブジェクトのインデックス。またはオブジェクトが結果コレクションに見つからない場合は
NSNotFound
。 -
述語に一致する結果コレクション内の最初のオブジェクトのインデックスを返します。
宣言
Objective-C
- (NSUInteger)indexOfObjectWithPredicate:(nonnull NSPredicate *)predicate;
Swift
func indexOfObject(with predicate: NSPredicate) -> UInt
パラメーター
predicate
オブジェクトをフィルタリングする述語。
戻り値
オブジェクトのインデックス。またはオブジェクトが結果コレクションに見つからない場合は
NSNotFound
。 -
結果コレクション内の指定された述語に一致するすべてのオブジェクトを返します。
宣言
Objective-C
- (nonnull RLMResults<RLMObjectType> *)objectsWhere: (nonnull NSString *)predicateFormat, ...;
パラメーター
predicateFormat
述語形式の string 。オプションで、その後に変数の数の引数が続きます。
戻り値
指定された述語に一致するオブジェクトの
RLMResults
。 -
結果コレクション内の指定された述語に一致するすべてのオブジェクトを返します。
宣言
Objective-C
- (nonnull RLMResults<RLMObjectType> *)objectsWithPredicate: (nonnull NSPredicate *)predicate;
Swift
func objects(with predicate: NSPredicate) -> RLMResults<RLMObjectType>
パラメーター
predicate
オブジェクトをフィルタリングする述語。
戻り値
指定された述語に一致するオブジェクトの
RLMResults
。 -
既存の結果コレクションからソートされた
RLMResults
を返します。宣言
Objective-C
- (nonnull RLMResults<RLMObjectType> *) sortedResultsUsingKeyPath:(nonnull NSString *)keyPath ascending:(BOOL)ascending;
Swift
func sortedResults(usingKeyPath keyPath: String, ascending: Bool) -> RLMResults<RLMObjectType>
パラメーター
keyPath
ソートするキー パス。
ascending
並べ替える方向。
戻り値
指定されたキー パスでソートされた
RLMResults
。 -
既存の結果コレクションからソートされた
RLMResults
を返します。宣言
Objective-C
- (nonnull RLMResults<RLMObjectType> *)sortedResultsUsingDescriptors: (nonnull NSArray<RLMSortDescriptor *> *)properties;
Swift
func sortedResults(using properties: [RLMSortDescriptor]) -> RLMResults<RLMObjectType>
パラメーター
properties
並べ替え対象の
RLMSortDescriptor
の配列。戻り値
指定されたプロパティでソートされた
RLMResults
。 -
既存の結果コレクションから個別の
RLMResults
を返します。宣言
Objective-C
- (nonnull RLMResults<RLMObjectType> *)distinctResultsUsingKeyPaths: (nonnull NSArray<NSString *> *)keyPaths;
Swift
func distinctResults(usingKeyPaths keyPaths: [String]) -> RLMResults<RLMObjectType>
パラメーター
keyPaths
使用されるキー パスは異なる結果を生成します
戻り値
指定されたキー パスに基づいて個別の
RLMResults
が作成されます
-
結果コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは最初の結果コレクションとは非同期に呼び出され、結果内のいずれかのオブジェクトまたは結果内のどのオブジェクトが変更されるたびに、再度呼び出されます。
ブロックが初めて呼び出されるときに、
change
パラメータはnil
になります。 その後の呼び出しごとに、結果コレクション内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによって結果コレクション内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、UITableView
の更新例については、RLMCollectionChange
のドキュメントを参照してください。エラー パラメータは下位互換性のためだけに存在し、常に
nil
になります。ブロックが呼び出される時点で、
RLMResults
オブジェクトは完全に評価され最新の状態になり、同じスレッドで書込みトランザクションを実行したり、-[RLMRealm refresh]
を明示的に呼び出したりしない限り、そのオブジェクトにアクセスするにはブロッキング作業は 実行されません 。通知は標準の実行ループ経由で配信されるため、実行ループが他のアクティビティによってブロックされている間は配信されません。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには初期結果を持つ通知を含めることができます。 たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。
RLMResults<Dog *> *results = [Dog allObjects]; NSLog(@"dogs.count: %zu", dogs.count); // => 0 self.token = [results addNotificationBlock:^(RLMResults *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"; [realm addObject:dog]; }]; // end of run loop execution context
アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで
-invalidate
を呼び出します。警告
このメソッドは、書込みトランザクション中、または Realm を含む が読み取り専用の場合に呼び出すことができません。
宣言
Objective-C
- (nonnull RLMNotificationToken *)addNotificationBlock: (nonnull void (^)(RLMResults<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void) -> RLMNotificationToken
パラメーター
block
変更が発生するたびに呼び出されるブロック。
戻り値
更新を配信する限り保持する必要があるトークン。
-
結果コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは最初の結果コレクションとは非同期に呼び出され、結果内のいずれかのオブジェクトまたは結果内のどのオブジェクトが変更されるたびに、再度呼び出されます。
ブロックが初めて呼び出されるときに、
change
パラメータはnil
になります。 その後の呼び出しごとに、結果コレクション内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによって結果コレクション内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、UITableView
の更新例については、RLMCollectionChange
のドキュメントを参照してください。エラー パラメータは下位互換性のためだけに存在し、常に
nil
になります。ブロックが呼び出される時点で、
RLMResults
オブジェクトは完全に評価され最新の状態になり、同じスレッドで書込みトランザクションを実行したり、-[RLMRealm refresh]
を明示的に呼び出したりしない限り、そのオブジェクトにアクセスするにはブロッキング作業は 実行されません 。通知は指定されたキューに配信されます。 キューがブロックされ、通知がすぐに配信されない場合は、複数の通知が 1 つの通知に統合されます。
アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで
-invalidate
を呼び出します。警告
このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。警告
キューはシリアル キューである必要があります。
宣言
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMResults<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, queue: dispatch_queue_t?) -> RLMNotificationToken
パラメーター
block
変更が発生するたびに呼び出されるブロック。
queue
通知を送信するシリアル キュー。
戻り値
更新を配信する限り保持する必要があるトークン。
-
結果コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは最初の結果コレクションとは非同期に呼び出され、結果内のいずれかのオブジェクトまたは結果内のどのオブジェクトが変更されるたびに、再度呼び出されます。
ブロックが初めて呼び出されるときに、
change
パラメータはnil
になります。 その後の呼び出しごとに、結果コレクション内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによって結果コレクション内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、UITableView
の更新例については、RLMCollectionChange
のドキュメントを参照してください。エラー パラメータは下位互換性のためだけに存在し、常に
nil
になります。ブロックが呼び出される時点で、
RLMResults
オブジェクトは完全に評価され最新の状態になり、同じスレッドで書込みトランザクションを実行したり、-[RLMRealm refresh]
を明示的に呼び出したりしない限り、そのオブジェクトにアクセスするにはブロッキング作業は 実行されません 。通知は指定されたキューに配信されます。 キューがブロックされ、通知がすぐに配信されない場合は、複数の通知が 1 つの通知に統合されます。
アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで
-invalidate
を呼び出します。警告
このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。警告
キューはシリアル キューである必要があります。
宣言
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMResults<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block keyPaths:(nullable NSArray<NSString *> *)keyPaths queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?, queue: dispatch_queue_t?) -> RLMNotificationToken
パラメーター
block
変更が発生するたびに呼び出されるブロック。
queue
通知を送信するシリアル キュー。
keyPaths
これらのキーパスで発生した変更に対してブロックが呼び出されます。 キー パスが指定されていない場合、プロパティ キー パスごとに通知が配信されます。
戻り値
更新を配信する限り保持する必要があるトークン。
-
結果コレクションが変更されるたびに呼び出されるブロックを登録します。
ブロックは最初の結果コレクションとは非同期に呼び出され、結果内のいずれかのオブジェクトまたは結果内のどのオブジェクトが変更されるたびに、再度呼び出されます。
ブロックが初めて呼び出されるときに、
change
パラメータはnil
になります。 その後の呼び出しごとに、結果コレクション内のどの行が追加、削除、または変更されたかに関する情報が含まれます。 書込みトランザクションによって結果コレクション内のオブジェクトが変更されなかった場合、ブロックはまったく呼び出されません。 変更が報告される方法と、UITableView
の更新例については、RLMCollectionChange
のドキュメントを参照してください。エラー パラメータは下位互換性のためだけに存在し、常に
nil
になります。ブロックが呼び出される時点で、
RLMResults
オブジェクトは完全に評価され最新の状態になり、同じスレッドで書込みトランザクションを実行したり、-[RLMRealm refresh]
を明示的に呼び出したりしない限り、そのオブジェクトにアクセスするにはブロッキング作業は 実行されません 。通知は標準の実行ループ経由で配信されるため、実行ループが他のアクティビティによってブロックされている間は配信されません。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには初期結果を持つ通知を含めることができます。 たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。
アップデートを ブロックに引き続き送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンで
-invalidate
を呼び出します。警告
このメソッドは、Realm を含む が読み取り専用または固定されている場合、呼び出すことができません。警告
キューはシリアル キューである必要があります。
宣言
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMResults<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block keyPaths:(nullable NSArray<NSString *> *)keyPaths;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?) -> RLMNotificationToken
パラメーター
block
変更が発生するたびに呼び出されるブロック。
keyPaths
これらのキーパスで発生した変更に対してブロックが呼び出されます。 キー パスが指定されていない場合、プロパティ キー パスごとに通知が配信されます。
戻り値
更新を配信する限り保持する必要があるトークン。
-
RMResult のローカル フィルターに一致する RMSyncSubscription を作成します。
サブスクリプションを Realm のローカル サブスクリプションセットにコミットすると、メソッドは
RLMWaitForSyncMode
の動作に従ってダウンロードを待機します。名前のないサブスクライブ
名前なしで一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、別のサブスクリプションは作成されません。名前付きサブスクリプションに一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、名前のない追加のサブスクリプションが作成されます。名前付きサブスクリプション
名前のないサブスクリプションに一致するクエリを持つ名前で
subscribeWithCompletion:
が呼び出された場合、追加の名前付きサブスクリプションが作成されます。既存の名前とクエリ
別のクエリで取得される名前で
subscribeWithCompletion:
が呼び出された場合、古いサブスクライブは新しいクエリで更新されます。注意
このメソッドは、サブスクリプションを作成または更新する更新ブロックトランザクションを開きます。 一度に複数のサブスクライブを作成するために、このメソッドをループ処理しないことをお勧めします。 これにより、不要な書込みトランザクションが複数発生してパフォーマンスのボトルネックが発生する可能性があります。 複数のサブスクライブを作成するには、 @search:
[RLMSyncSubscription update:queue:onComplete:]
を指定します。詳細は、次を参照してください:
警告
この API は現在
Preview
であり、将来変更される可能性があります。宣言
Objective-C
- (void)subscribeWithCompletionOnQueue:(dispatch_queue_t _Nullable)queue completion: (nonnull RLMResultsCompletionBlock)completion;
Swift
func subscribeWithCompletion(on queue: dispatch_queue_t?) async throws -> RLMResults<AnyObject>
パラメーター
queue
完了がディスパッチされるキュー。
completion
サブスクライブ完了後に呼び出される完了ブロック。 コールバックは、
waitForSyncMode
の値に従ってダウンロードを待機します。 -
RMResult のローカル フィルターに一致する RMSyncSubscription を作成します。
サブスクリプションを Realm のローカル サブスクリプションセットにコミットすると、メソッドは
RLMWaitForSyncMode
の動作に従ってダウンロードを待機します。名前のないサブスクライブ
名前なしで一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、別のサブスクリプションは作成されません。名前付きサブスクリプションに一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、名前のない追加のサブスクリプションが作成されます。名前付きサブスクリプション
名前のないサブスクリプションに一致するクエリを持つ名前で
subscribeWithCompletion:
が呼び出された場合、追加の名前付きサブスクリプションが作成されます。既存の名前とクエリ
別のクエリで取得される名前で
subscribeWithCompletion:
が呼び出された場合、古いサブスクライブは新しいクエリで更新されます。注意
このメソッドは、サブスクリプションを作成または更新する更新ブロックトランザクションを開きます。 一度に複数のサブスクライブを作成するために、このメソッドをループ処理しないことをお勧めします。 これにより、不要な書込みトランザクションが複数発生してパフォーマンスのボトルネックが発生する可能性があります。 複数のサブスクライブを作成するには、 @search:
[RLMSyncSubscription update:queue:onComplete:]
を指定します。詳細は、次を参照してください:
警告
この API は現在
Preview
であり、将来変更される可能性があります。宣言
Objective-C
- (void)subscribeWithName:(NSString *_Nullable)name onQueue:(dispatch_queue_t _Nullable)queue completion:(nonnull RLMResultsCompletionBlock)completion;
Swift
func subscribe(withName name: String?, on queue: dispatch_queue_t?) async throws -> RLMResults<AnyObject>
パラメーター
name
サブスクリプションを識別するために使用される名前。
queue
完了がディスパッチされるキュー。
completion
サブスクライブ完了後に呼び出される完了ブロック。 コールバックは、
waitForSyncMode
の値に従ってダウンロードを待機します。 -
RMResult のローカル フィルターに一致する RMSyncSubscription を作成します。
サブスクリプションを Realm のローカル サブスクリプションセットにコミットすると、メソッドは
RLMWaitForSyncMode
に従ってダウンロードを待機します。名前のないサブスクライブ
名前なしで一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、別のサブスクリプションは作成されません。名前付きサブスクリプションに一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、名前のない追加のサブスクリプションが作成されます。名前付きサブスクリプション
名前のないサブスクリプションに一致するクエリを持つ名前で
subscribeWithCompletion:
が呼び出された場合、追加の名前付きサブスクリプションが作成されます。既存の名前とクエリ
別のクエリで取得される名前で
subscribeWithCompletion:
が呼び出された場合、古いサブスクライブは新しいクエリで更新されます。注意
このメソッドは、サブスクリプションを作成または更新する更新ブロックトランザクションを開きます。 一度に複数のサブスクライブを作成するために、このメソッドをループ処理しないことをお勧めします。 これにより、不要な書込みトランザクションが複数発生してパフォーマンスのボトルネックが発生する可能性があります。 複数のサブスクライブを作成するには、 @search:
[RLMSyncSubscription update:queue:onComplete:]
を指定します。詳細は、次を参照してください:
警告
この API は現在
Preview
であり、将来変更される可能性があります。宣言
Objective-C
- (void)subscribeWithName:(NSString *_Nullable)name waitForSync:(RLMWaitForSyncMode)waitForSyncMode onQueue:(dispatch_queue_t _Nullable)queue completion:(nonnull RLMResultsCompletionBlock)completion;
Swift
@_unsafeInheritExecutor func subscribe(withName name: String?, waitForSync waitForSyncMode: WaitForSyncMode, on queue: dispatch_queue_t?) async throws -> RLMResults<AnyObject>
パラメーター
name
サブスクリプションを識別するために使用される名前。
waitForSyncMode
完了ハンドラーが呼び出されるタイミングを決定する
queue
完了がディスパッチされるキュー。
completion
サブスクライブ完了後に呼び出される完了ブロック。 コールバックは、
waitForSyncMode
の値に従ってダウンロードを待機します。 -
RMResult のローカル フィルターに一致する RMSyncSubscription を作成します。
サブスクリプションを Realm のローカル サブスクリプションセットにコミットすると、メソッドは
RLMWaitForSyncMode
に従ってダウンロードを待機します。名前のないサブスクライブ
名前なしで一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、別のサブスクリプションは作成されません。名前付きサブスクリプションに一致するクエリを持つ
subscribeWithCompletion:
が名前なしで呼び出された場合、名前のない追加のサブスクリプションが作成されます。名前付きサブスクリプション
名前のないサブスクリプションに一致するクエリを持つ名前で
subscribeWithCompletion:
が呼び出された場合、追加の名前付きサブスクリプションが作成されます。既存の名前とクエリ
別のクエリで取得される名前で
subscribeWithCompletion:
が呼び出された場合、古いサブスクライブは新しいクエリで更新されます。注意
このメソッドは、サブスクリプションを作成または更新する更新ブロックトランザクションを開きます。 一度に複数のサブスクライブを作成するために、このメソッドをループ処理しないことをお勧めします。 これにより、不要な書込みトランザクションが複数発生してパフォーマンスのボトルネックが発生する可能性があります。 複数のサブスクライブを作成するには、 @search:
[RLMSyncSubscription update:queue:onComplete:]
を指定します。詳細は、次を参照してください:
警告
この API は現在
Preview
であり、将来変更される可能性があります。宣言
Objective-C
- (void)subscribeWithName:(NSString *_Nullable)name waitForSync:(RLMWaitForSyncMode)waitForSyncMode onQueue:(dispatch_queue_t _Nullable)queue timeout:(NSTimeInterval)timeout completion:(nonnull RLMResultsCompletionBlock)completion;
Swift
@_unsafeInheritExecutor func subscribe(withName name: String?, waitForSync waitForSyncMode: WaitForSyncMode, on queue: dispatch_queue_t?, timeout: TimeInterval) async throws -> RLMResults<AnyObject>
パラメーター
name
サブスクリプションを識別するために使用される名前。
waitForSyncMode
完了ハンドラーが呼び出されるタイミングを決定する
queue
完了がディスパッチされるキュー。
timeout
完了ハンドラーによるダウンロードの待機を終了するタイムアウト。 タイムアウトを超えた場合、完了ハンドラーはエラーを返します。
completion
サブスクライブ完了後に呼び出される完了ブロック。 コールバックは、
waitForSyncMode
の値に従ってダウンロードを待機します。 -
RMResults のローカル フィルターに一致する RMSubscription を削除します。
メソッドは、Realm のローカル サブスクリプションセットにサブスクリプションの削除をコミットした後にを返します。 このメソッドを呼び出すと、オブジェクトが Realm から削除されるのを待たなくなります。
RMResult で unsubscribe を呼び出しても、RMResult からローカル フィルターは削除されません。 unsubscribe を呼び出した後も、RMRealm のサブスクリプションセットに他のサブスクリプションが存在する可能性があるため、RMResult にはまだオブジェクトが含まれる場合があります。
注意
名前付きサブスクリプションを削除するには、RMResult によって以前にサブスクライブが作成されている必要があります。
subscribe
を呼び出したときに完了ブロックに返されるRLMResults
は、同じサブスクリプションのサブスクライブを解除するために使用できます。注意
このメソッドは、サブスクリプションを作成または更新する更新ブロックトランザクションを開きます。 一度に複数のサブスクライブを作成するために、このメソッドをループ処理しないことをお勧めします。 これにより、不要な書込みトランザクションが複数発生してパフォーマンスのボトルネックが発生する可能性があります。 複数のサブスクライブを作成するには、 @search:
[RLMSyncSubscription update:queue:onComplete:]
を指定します。警告
この API は現在
Preview
であり、将来変更される可能性があります。宣言
Objective-C
- (void)unsubscribe;
Swift
func unsubscribe()
-
結果コレクションによって表されるすべてのオブジェクトの中で指定されたプロパティの最小(最小)値を返します。
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
。
-
このコレクションを指定されたプロパティ キー パスからソートしてセクションを作成し、その結果を
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 のインスタンス。
-
結果が固定されているかどうかを示します。
凍結された結果は不変であり、どのスレッドからでもアクセスできます。固定された結果から読み取られたオブジェクトも固定されます。
宣言
Objective-C
@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
-
なし
RMResult を直接作成することはできません
-[RLMResults init]
は、RLMResults
を直接作成できないため、利用できません。RLMResults
は、Realm をクエリすることで取得できます。宣言
Objective-C
- (nonnull instancetype)init;
-
なし
RMResult を直接作成することはできません
+[RLMResults new]
は、RLMResults
を直接作成できないため、利用できません。RLMResults
は、Realm をクエリすることで取得できます。宣言
Objective-C
+ (nonnull instancetype)new;