RLMSet
Objective-C
@interface RLMSet<RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
Um tipo de dados de collection usado para armazenar objetos distintos.
Observação
RLMSet
suporta o armazenamento de tipos primitivos e RLMObject
. RLMSet
não suporta o armazenamento de Objeto de Realm incorporados.
-
O número de objetos no conjunto.
Declaração
Objective-C
@property (nonatomic, readonly) NSUInteger count;
Swift
var count: UInt { get }
-
O tipo dos objetos no conjunto.
Declaração
Objective-C
@property (nonatomic, readonly) RLMPropertyType type;
Swift
var type: RLMPropertyType { get }
-
Indica se o objeto na collection podem ser
nil
.Declaração
Objective-C
@property (nonatomic, readonly, getter=isOptional) BOOL optional;
Swift
var isOptional: Bool { get }
-
Os objetos no RLMSet como um valor NSArray.
Declaração
Objective-C
@property (nonatomic, readonly) NSArray<RLMObjectType> *_Nonnull allObjects;
Swift
var allObjects: [RLMObjectType] { get }
-
O nome da classe dos objetos contidos no conjunto.
será
nil
setype
não for RLMPropertyTypeObject.Declaração
Objective-C
@property (nonatomic, copy, readonly, nullable) NSString *objectClassName;
Swift
var objectClassName: String? { get }
-
Indica se o conjunto não pode mais ser acessado.
Declaração
Objective-C
@property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;
Swift
var isInvalidated: Bool { get }
-
Indica se o conjunto está congelado.
Os conjuntos congelados são imutáveis e podem ser acessados de qualquer thread. Os conjuntos congelados são criados chamando
-freeze
em um conjunto ativo managed. Os conjuntos não gerenciados nunca são congelados.Declaração
Objective-C
@property (nonatomic, readonly, getter=isFrozen) BOOL frozen;
Swift
var isFrozen: Bool { get }
-
Adiciona um objeto ao conjunto se ele ainda não estiver presente.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)addObject:(nonnull RLMObjectType)object;
Swift
func add(_ object: RLMObjectType)
Parâmetros
object
Um objeto do tipo contido no conjunto.
-
Adiciona uma array de objetos distintos ao conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)addObjects:(nonnull id<NSFastEnumeration>)objects;
Swift
func addObjects(_ objects: any NSFastEnumeration)
Parâmetros
objects
Um objeto enumerável como
NSArray
,NSSet
ouRLMResults
que contém objetos da mesma classe que o conjunto. -
Remove um determinado objeto do conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)removeObject:(nonnull RLMObjectType)object;
Swift
func remove(_ object: RLMObjectType)
Parâmetros
object
O objeto no conjunto que você deseja remover.
-
Remove todos os objetos do set.
Aviso
Este método só pode ser chamado durante uma transação de escrita.Declaração
Objective-C
- (void)removeAllObjects;
Swift
func removeAllObjects()
-
Esvazia o conjunto de recebimento e, em seguida, adiciona cada objeto contido em outro conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)setSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func setSet(_ set: RLMSet<RLMObjectType>)
Parâmetros
set
O RLMSet cujos membros substituem o conteúdo do conjunto receptor.
-
Remove do conjunto de recebimento cada objeto que não é um membro de outro conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)intersectSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func intersect(_ set: RLMSet<RLMObjectType>)
Parâmetros
set
O RLMSet com o qual realizar a interseção.
-
Remove cada objeto em outro conjunto fornecido do conjunto receptor, se presente.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)minusSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func minus(_ set: RLMSet<RLMObjectType>)
Parâmetros
set
O conjunto de objetos a ser removido do conjunto de recebimento.
-
Adiciona cada objeto em outro conjunto fornecido ao conjunto receptor, se não estiver presente.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)unionSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func union(_ set: RLMSet<RLMObjectType>)
Parâmetros
set
O conjunto de objetos a adicionar ao conjunto de recebimento.
-
Retorna um valor booleano que indica se pelo menos um objeto no conjunto de recebimento também está presente em outro conjunto.
Declaração
Objective-C
- (BOOL)intersectsSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func intersects(_ set: RLMSet<RLMObjectType>) -> Bool
Parâmetros
set
O RLMSet com o qual comparar o conjunto de recebimento.
Valor de retorno
YES se pelo menos um objeto no set de recebimento também estiver presente em otherSet, caso contrário, NO.
-
Retorna um valor booleano que indica se cada objeto no conjunto de recebimento também está presente em outro conjunto.
Declaração
Objective-C
- (BOOL)isSubsetOfSet:(nonnull RLMSet<RLMObjectType> *)set;
Swift
func isSubset(of set: RLMSet<RLMObjectType>) -> Bool
Parâmetros
set
O RLMSet com o qual comparar o conjunto de recebimento.
Valor de retorno
YES se todos os objetos do set também estiverem presentes no otherSet, caso contrário, NO.
-
Retorna um valor booleano que indica se um determinado objeto está presente no conjunto.
Declaração
Objective-C
- (BOOL)containsObject:(nonnull RLMObjectType)anObject;
Swift
func contains(_ anObject: RLMObjectType) -> Bool
Parâmetros
anObject
Um objeto para procurar no conjunto.
Valor de retorno
YES se anObject estiver presente no conjunto, caso contrário, NO.
-
Compara o conjunto de recebimento com outro conjunto.
Declaração
Objective-C
- (BOOL)isEqualToSet:(nonnull RLMSet<RLMObjectType> *)otherSet;
Swift
func isEqual(to otherSet: RLMSet<RLMObjectType>) -> Bool
Parâmetros
otherSet
O conjunto com o qual comparar o conjunto de recebimento.
Valor de retorno
YES se o conteúdo de otherSet for igual ao conteúdo do set de recebimento, caso contrário, NO.
-
Classifica e seciona esta collection a partir de um determinado caminho de chave de propriedade, retornando o resultado como uma instância de
RLMSectionedResults
.Declaração
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
Parâmetros
keyPath
O caminho da chave de propriedade para classificar.
ascending
A direção para classificar.
keyBlock
Uma chamada de resposta invocada em cada elemento na collection Results. Esta chamada de resposta é para retornar a chave de seção para o elemento na collection.
Valor de retorno
Uma instância de RLMSectionedResults.
-
Classifica e seciona esta collection a partir de uma determinada array de descritores de classificação, retornando o resultado como uma instância de
RLMSectionedResults
.Observação
O descritor de classificação primária deve ser responsável por determinar a chave de seção.
Declaração
Objective-C
- (nonnull RLMSectionedResults *) sectionedResultsUsingSortDescriptors: (nonnull NSArray<RLMSortDescriptor *> *)sortDescriptors keyBlock:(nonnull RLMSectionedResultsKeyBlock) keyBlock;
Swift
func sectionedResults(using sortDescriptors: [RLMSortDescriptor], keyBlock: @escaping RLMSectionedResultsKeyBlock) -> RLMSectionedResults
Parâmetros
sortDescriptors
Uma array de
RLMSortDescriptor
s para classificar.keyBlock
Uma chamada de resposta invocada em cada elemento na collection Results. Esta chamada de resposta é para retornar a chave de seção para o elemento na collection.
Valor de retorno
Uma instância de RLMSectionedResults.
-
Registra um bloco a ser chamado cada vez que o conjunto for alterado.
O bloco será chamado de forma assíncrona com o conjunto inicial e, em seguida, chamado novamente após cada transação de escrita que altere qualquer objeto do conjunto, quais objeto estão nos resultados ou a ordem dos objeto no conjunto.
O parâmetro
changes
seránil
na primeira vez que o bloco for chamado. Para cada chamada depois disso, ela conterá informações sobre quais linhas do conjunto foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto no conjunto, o bloco não será chamado. Consulte a documentação doRLMCollectionChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.O parâmetro de erro está presente apenas para compatibilidade com versões anteriores e sempre será
nil
.As notificações são entregues por meio do loop de eventos padrão e, portanto, não podem ser entregues enquanto o loop de eventos estiver bloqueado por outra atividade. Quando as notificações não podem ser entregues instantaneamente, várias notificações podem ser agrupadas em uma única notificação. Isso pode incluir a notificação com os resultados iniciais. For example, the following code performs a write transaction immediately after adding the notification block, so there is no opportunity for the initial notification to be delivered first. Como resultado, a notificação inicial refletirá o estado do Realm após a transação de escrita.
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
Você deve reter o token retornado pelo tempo que quiser que as atualizações continuem sendo enviadas ao bloco. Para parar de receber atualizações, ligue para
-invalidate
no token.Aviso
Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
Este método só pode ser chamado em um conjunto gerenciado não congelado.
Declaração
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
Parâmetros
block
O bloco a ser chamado cada vez que o conjunto for alterado.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Registra um bloco a ser chamado cada vez que o conjunto for alterado.
O bloco será chamado de forma assíncrona com o conjunto inicial e, em seguida, chamado novamente após cada transação de escrita que altere qualquer objeto do conjunto, quais objeto estão nos resultados ou a ordem dos objeto no conjunto.
O parâmetro
changes
seránil
na primeira vez que o bloco for chamado. Para cada chamada depois disso, ela conterá informações sobre quais linhas do conjunto foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto no conjunto, o bloco não será chamado. Consulte a documentação doRLMCollectionChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.O parâmetro de erro está presente apenas para compatibilidade com versões anteriores e sempre será
nil
.As notificações são entregues na fila fornecida. Se a fila estiver bloqueada e as notificações não puderem ser entregues instantaneamente, várias notificações poderão ser agrupadas em uma única notificação.
Você deve reter o token retornado pelo tempo que quiser que as atualizações continuem sendo enviadas ao bloco. Para parar de receber atualizações, ligue para
-invalidate
no token.Aviso
Este método não pode ser chamado quando o Realm que o contém estiver somente para leitura ou congelado.Aviso
A fila deve ser uma fila serial.
Declaração
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
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
queue
A fila em série para a qual entregar notificações.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Registra um bloco a ser chamado cada vez que o conjunto for alterado.
O bloco será chamado de forma assíncrona com o conjunto inicial e, em seguida, chamado novamente após cada transação de escrita que altere qualquer objeto do conjunto, quais objeto estão nos resultados ou a ordem dos objeto no conjunto.
O parâmetro
changes
seránil
na primeira vez que o bloco for chamado. Para cada chamada depois disso, ela conterá informações sobre quais linhas do conjunto foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto no conjunto, o bloco não será chamado. Consulte a documentação doRLMCollectionChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.O parâmetro de erro está presente apenas para compatibilidade com versões anteriores e sempre será
nil
.As notificações são entregues na fila fornecida. Se a fila estiver bloqueada e as notificações não puderem ser entregues instantaneamente, várias notificações poderão ser agrupadas em uma única notificação.
Você deve reter o token retornado pelo tempo que quiser que as atualizações continuem sendo enviadas ao bloco. Para parar de receber atualizações, ligue para
-invalidate
no token.Aviso
Este método não pode ser chamado quando o Realm que o contém estiver somente para leitura ou congelado.Aviso
A fila deve ser uma fila serial.
Declaração
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
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
keyPaths
O bloco será chamado para alterações que ocorrem nesses keypaths. Se nenhum caminho de chave for fornecido, notificações serão entregues para cada caminho de chave de propriedade.
queue
A fila em série para a qual entregar notificações.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Registra um bloco a ser chamado cada vez que o conjunto for alterado.
O bloco será chamado de forma assíncrona com o conjunto inicial e, em seguida, chamado novamente após cada transação de escrita que altere qualquer objeto do conjunto, quais objeto estão nos resultados ou a ordem dos objeto no conjunto.
O parâmetro
changes
seránil
na primeira vez que o bloco for chamado. Para cada chamada depois disso, ela conterá informações sobre quais linhas do conjunto foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto no conjunto, o bloco não será chamado. Consulte a documentação doRLMCollectionChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.O parâmetro de erro está presente apenas para compatibilidade com versões anteriores e sempre será
nil
.As notificações são entregues por meio do loop de eventos padrão e, portanto, não podem ser entregues enquanto o loop de eventos estiver bloqueado por outra atividade. Quando as notificações não podem ser entregues instantaneamente, várias notificações podem ser agrupadas em uma única notificação. Isso pode incluir a notificação com os resultados iniciais. For example, the following code performs a write transaction immediately after adding the notification block, so there is no opportunity for the initial notification to be delivered first. Como resultado, a notificação inicial refletirá o estado do Realm após a transação de escrita.
Você deve reter o token retornado pelo tempo que quiser que as atualizações continuem sendo enviadas ao bloco. Para parar de receber atualizações, ligue para
-invalidate
no token.Aviso
Este método não pode ser chamado quando o Realm que o contém estiver somente para leitura ou congelado.Aviso
A fila deve ser uma fila serial.Declaração
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
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
keyPaths
O bloco será chamado para alterações que ocorrem nesses keypaths. Se nenhum caminho de chave for fornecido, notificações serão entregues para cada caminho de chave de propriedade.
Valor de retorno
Um token que deve ser mantido pelo tempo que você quiser que as atualizações sejam entregues.
-
Retorna o valor mínimo (mais baixo) da propriedade fornecida entre todos os objetos no conjunto.
NSNumber *min = [object.setProperty minOfProperty:@"age"];
Declaração
Objective-C
- (nullable id)minOfProperty:(nonnull NSString *)property;
Swift
func min(ofProperty property: String) -> Any?
Parâmetros
property
A propriedade cujo valor mínimo é desejado. Somente propriedades dos tipos
int
,float
,double
eNSDate
são suportadas.Valor de retorno
O valor mínimo da propriedade ou
nil
se o conjunto estiver vazio. -
Retorna o valor máximo (mais alto) da propriedade fornecida entre todos os objetos no conjunto.
NSNumber *max = [object.setProperty maxOfProperty:@"age"];
Declaração
Objective-C
- (nullable id)maxOfProperty:(nonnull NSString *)property;
Swift
func max(ofProperty property: String) -> Any?
Parâmetros
property
A propriedade cujo valor máximo é desejado. Somente propriedades dos tipos
int
,float
,double
eNSDate
são suportadas.Valor de retorno
O valor máximo da propriedade ou
nil
se o conjunto estiver vazio. -
Retorna a soma de valores distintos de uma determinada propriedade sobre todos os objetos no conjunto.
NSNumber *sum = [object.setProperty sumOfProperty:@"age"];
Declaração
Objective-C
- (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;
Swift
func sum(ofProperty property: String) -> NSNumber
Parâmetros
property
A propriedade cujos valores devem ser somados. Somente propriedades dos tipos
int
,float
edouble
são suportadas.Valor de retorno
A soma da propriedade fornecida.
-
Retorna o valor médio de uma determinada propriedade sobre os objetos no conjunto.
NSNumber *average = [object.setProperty averageOfProperty:@"age"];
Declaração
Objective-C
- (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;
Swift
func average(ofProperty property: String) -> NSNumber?
Parâmetros
property
A propriedade cujo valor médio deve ser calculado. Somente propriedades dos tipos
int
,float
edouble
são suportadas.Valor de retorno
O valor médio da propriedade fornecida ou
nil
se o conjunto estiver vazio.
-
Retorna um snapshot congelado (imutável) deste conjunto.
A cópia congelada é um conjunto imutável que contém os mesmos dados que este et contém atualmente, mas não será atualizado quando forem feitas gravações no Realm que a contém. Ao contrário dos conjuntos ativos, os conjuntos congelados podem ser acessados de qualquer thread.
Aviso
Este método não pode ser chamado durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
Este método só pode ser chamado em um conjunto managed.Aviso
Manter um conjunto congelado por um longo período enquanto executa a transação de escrita no Realm pode fazer com que o Arquivo de Realm cresça para tamanhos grandes. ConsulteRLMRealmConfiguration.maximumNumberOfActiveVersions
para obter mais informações.Declaração
Objective-C
- (nonnull instancetype)freeze;
Swift
func freeze() -> Self
-
Retorna uma versão ativa dessa collection congelada.
Esse método resolve uma referência a uma cópia ativa da mesma collection congelada. Se for chamado em uma coleção ativa, retornará a si mesmo.
Declaração
Objective-C
- (nonnull instancetype)thaw;
Swift
func thaw() -> Self
-
Indisponível
Os RLMSets não podem ser criados diretamente
-[RLMSet init]
não está disponível porqueRLMSet
s não pode ser criado diretamente. As propriedadesRLMSet
emRLMObject
s são criadas preguiçosamente quando acessadas.Declaração
Objective-C
- (nonnull instancetype)init;
-
Indisponível
O RLMSet não pode ser criado diretamente
+[RLMSet new]
não está disponível porqueRLMSet
s não pode ser criado diretamente. As propriedadesRLMSet
emRLMObject
s são criadas preguiçosamente quando acessadas.Declaração
Objective-C
+ (nonnull instancetype)new;