RMSet
Objective-C
@interface RLMSet<RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
個別のオブジェクトを保存するために使用されるコレクション データ型。
-
セット内のオブジェクトの数。
宣言
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 }
-
セットがアクセスできなくなっているかどうかを示します。
宣言
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
セットと同じクラスのオブジェクトを含む、
NSArray
、NSSet
、RLMResults
などの列挙可能なオブジェクト。 -
セットから指定されたオブジェクトを削除します。
警告
このメソッドは、書込みトランザクション中にのみ呼び出されます。
宣言
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 のインスタンス。
-
セットが変更されるたびに呼び出されるブロックを登録します。
ブロックは初期セットと非同期に呼び出され、セット内のいずれかのオブジェクト、結果内のオブジェクト、またはセット内のオブジェクトの順序を変更するたびに再度呼び出されます。
ブロックが初めて呼び出されるときに、
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"];
宣言
Objective-C
- (nullable id)minOfProperty:(nonnull NSString *)property;
Swift
func min(ofProperty property: String) -> Any?
パラメーター
property
最小値が必要なプロパティ。
int
、float
、double
、NSDate
タイプのプロパティのみがサポートされています。戻り値
プロパティの最小値、またはセットが空の場合は
nil
。 -
セット内のすべてのオブジェクトの中で指定されたプロパティの最大(最高)値を返します。
NSNumber *max = [object.setProperty 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 = [object.setProperty sumOfProperty:@"age"];
宣言
Objective-C
- (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;
Swift
func sum(ofProperty property: String) -> NSNumber
パラメーター
property
値を合計する必要があるプロパティ。 サポートされているのは、
int
、float
、double
タイプのプロパティのみです。戻り値
指定された プロパティの合計。
-
セット内のオブジェクトに対する指定されたプロパティの平均値を返します。
NSNumber *average = [object.setProperty averageOfProperty:@"age"];
宣言
Objective-C
- (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;
Swift
func average(ofProperty property: String) -> NSNumber?
パラメーター
property
平均値を計算するプロパティ。 サポートされているのは、
int
、float
、double
タイプのプロパティのみです。戻り値
特定のプロパティの平均値。セットが空の場合は
nil
。
-
このセットの固定(不変)スナップショットを返します。
固定されたコピーは、このセットが現在含まれているデータと同じデータを含む不変のセットですが、含まれている 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
を直接作成できないため、利用できません。RLMSet
RLMObject
上の プロパティは、アクセス時に遅延作成されます。宣言
Objective-C
- (nonnull instancetype)init;
-
なし
RMSet は直接作成できません
+[RLMSet new]
は、RLMSet
を直接作成できないため、利用できません。RLMSet
RLMObject
上の プロパティは、アクセス時に遅延作成されます。宣言
Objective-C
+ (nonnull instancetype)new;