RLMMongoClient
Objective-C
@interface RLMSectionedResults<RLMKeyType : id <RLMValue>,
RLMObjectType : id <RLMValue>>
: NSObject <RLMSectionedResult>
Swift
@_nonSendable(_assumed) class RLMSectionedResults<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : RLMValue
Uma collection avaliada displicentemente que contém elementos em seções determinadas por uma chave de seção.
-
Uma array de todas as chaves na collection de resultados seccionadas.
Declaração
Objective-C
@property (nonatomic) NSArray<RLMKeyType> *_Nonnull allKeys;
Swift
var allKeys: [RLMKeyType] { get set }
-
A quantidade total de seções nesta collection.
Declaração
Objective-C
@property (nonatomic, readonly) NSUInteger count;
Swift
var count: UInt { get }
-
Retorna a seção em um determinado índice.
Declaração
Objective-C
- (nonnull RLMSection<RLMKeyType, RLMObjectType> *)objectAtIndexedSubscript: (NSUInteger)index;
Swift
subscript(index: UInt) -> RLMSection<RLMKeyType, RLMObjectType> { get }
-
Retorna a seção em um determinado índice.
Declaração
Objective-C
- (nonnull RLMSection<RLMKeyType, RLMObjectType> *)objectAtIndex: (NSUInteger)index;
Swift
func object(at index: UInt) -> RLMSection<RLMKeyType, RLMObjectType>
-
Retorna um snapshot congelado (imutável) desta coleção de resultados seccionada.
A cópia congelada é uma coleção de resultados seccionada imutável que contém os mesmos dados que essa coleção de resultados seccionada contém atualmente, mas não será atualizada quando forem feitas gravações no Realm que a contém . Ao contrário das coleções de resultados seccionadas ativas, a coleção de resultados seccionadas congeladas pode ser acessada 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
Manter uma coleção de resultados seccionada congelada por um longo período enquanto executa uma transação de gravação no Realm pode resultar no aumento do Arquivo de Realm para tamanhos grandes. ConsulteRLMRealmConfiguration.maximumNumberOfActiveVersions
para mais informações.Declaração
Objective-C
- (nonnull instancetype)freeze;
Swift
func freeze() -> Self
-
Retorna uma versão ativa desta coleção de resultados seccionados congelados.
Este método resolve uma referência a uma cópia ativa da mesma coleção de resultados seccionados congelados. Se for chamado em uma seção ativa, retornará a si mesmo.
Declaração
Objective-C
- (nonnull instancetype)thaw;
Swift
func thaw() -> Self
-
Indica se a coleção de resultados seccionada subjacente está congelada.
As coleções de resultados seccionadas congeladas são imutáveis e podem ser acessadas de qualquer thread.
Declaração
Objective-C
@property (nonatomic, readonly, getter=isFrozen) BOOL frozen;
Swift
var isFrozen: Bool { get }
-
Registra um bloco a ser chamado sempre que a coleção de resultados seccionada for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial de resultados seccionados e, em seguida, chamado novamente após cada transação de escrita que altere qualquer um dos objetos nos resultados ou quais objetos estão nos resultados.
O parâmetro
change
seránil
na primeira vez que o bloco for chamado. Para cada chamada posterior, ela conterá informações sobre quais linhas da seção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na seção, o bloco não será chamado. Consulte a documentação doRLMSectionedResultsChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.No momento em que o bloco for chamado, o objeto
RLMSectionedResults
será totalmente avaliado e atualizado.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.
RLMResults
*results = [Cão allObjects]; RLMSectionedResults *sectionedResults = [resultados sectionedResultsUsingKeyPath:@ “idade” ascendente:YES]; self.token = [sectionedResults addNotificationBlock:^(RLMSectionedResults *sectionedResults, RLMSectionedResultsChange *changes) { // Acionado apenas uma vez para o exemplo NSLog(@ “sectionedResults.count: %zu”, SectionedResults.count); // => 1 }]; [realm transactionWithBlock:^{ Dog *dog = [[Dog alloc] init]; dog.name = @"Rex"; dog.age = 5; [realm addObject:dog]; }]; // contexto de execução do loop de fim de execuçã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 durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
A fila deve ser uma fila serial.
Declaração
Objective-C
- (nonnull RLMNotificationToken *)addNotificationBlock: (nonnull void (^)(RLMSectionedResults<RLMKeyType, RLMObjectType> *_Nonnull, RLMSectionedResultsChange *_Nonnull))block;
Swift
func addNotificationBlock(_ block: @escaping (RLMSectionedResults<RLMKeyType, RLMObjectType>, RLMSectionedResultsChange) -> Void) -> RLMNotificationToken
Parâmetros
block
O bloco a ser chamado sempre que ocorre uma alteração.
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 sempre que a coleção de resultados seccionada for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial de resultados seccionados e, em seguida, chamado novamente após cada transação de escrita que altere qualquer um dos objetos nos resultados ou quais objetos estão nos resultados.
O parâmetro
change
seránil
na primeira vez que o bloco for chamado. Para cada chamada posterior, ela conterá informações sobre quais linhas da seção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na seção, o bloco não será chamado. Consulte a documentação doRLMSectionedResultsChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.No momento em que o bloco for chamado, o objeto
RLMSectionedResults
será totalmente avaliado e atualizado.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.
RLMResults
*results = [Cão allObjects]; RLMSectionedResults *sectionedResults = [resultados sectionedResultsUsingKeyPath:@ “idade” ascendente:YES]; self.token = [sectionedResults addNotificationBlock:^(RLMSectionedResults *sectionedResults, RLMSectionedResultsChange *changes) { // Acionado apenas uma vez para o exemplo NSLog(@ “sectionedResults.count: %zu”, SectionedResults.count); // => 1 }]; [realm transactionWithBlock:^{ Dog *dog = [[Dog alloc] init]; dog.name = @"Rex"; dog.age = 5; [realm addObject:dog]; }]; // contexto de execução do loop de fim de execuçã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 durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
A fila deve ser uma fila serial.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock: (nonnull void (^)( RLMSectionedResults<RLMKeyType, RLMObjectType> *_Nonnull, RLMSectionedResultsChange *_Nonnull))block queue:(nonnull dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMSectionedResults<RLMKeyType, RLMObjectType>, RLMSectionedResultsChange) -> 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 sempre que a coleção de resultados seccionada for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial de resultados seccionados e, em seguida, chamado novamente após cada transação de escrita que altere qualquer um dos objetos nos resultados ou quais objetos estão nos resultados.
O parâmetro
change
seránil
na primeira vez que o bloco for chamado. Para cada chamada posterior, ela conterá informações sobre quais linhas da seção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na seção, o bloco não será chamado. Consulte a documentação doRLMSectionedResultsChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.No momento em que o bloco for chamado, o objeto
RLMSectionedResults
será totalmente avaliado e atualizado.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.
RLMResults
*results = [Cão allObjects]; RLMSectionedResults *sectionedResults = [resultados sectionedResultsUsingKeyPath:@ “idade” ascendente:YES]; self.token = [sectionedResults addNotificationBlock:^(RLMSectionedResults *sectionedResults, RLMSectionedResultsChange *changes) { // Acionado apenas uma vez para o exemplo NSLog(@ “sectionedResults.count: %zu”, SectionedResults.count); // => 1 }]; [realm transactionWithBlock:^{ Dog *dog = [[Dog alloc] init]; dog.name = @"Rex"; dog.age = 5; [realm addObject:dog]; }]; // contexto de execução do loop de fim de execuçã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 durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
A fila deve ser uma fila serial.
Observação
Ao filtrar com caminhos principais, uma notificação será acionada nos seguintes cenários:
- Um objeto na coleção foi modificado nas propriedades filtradas.
- Um objeto foi modificado na propriedade caminho da chave da seção e o resultado dessa modificação alterou sua posição na seção, ou o objeto pode precisar ser movido para outra seção.
- Um objeto do mesmo tipo observado foi inserido ou excluído do Realm.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock: (nonnull void (^)( RLMSectionedResults<RLMKeyType, RLMObjectType> *_Nonnull, RLMSectionedResultsChange *_Nonnull))block keyPaths:(nonnull NSArray<NSString *> *)keyPaths;
Swift
func addNotificationBlock(_ block: @escaping (RLMSectionedResults<RLMKeyType, RLMObjectType>, RLMSectionedResultsChange) -> 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.
-
Registra um bloco a ser chamado sempre que a coleção de resultados seccionada for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial de resultados seccionados e, em seguida, chamado novamente após cada transação de escrita que altere qualquer um dos objetos nos resultados ou quais objetos estão nos resultados.
O parâmetro
change
seránil
na primeira vez que o bloco for chamado. Para cada chamada posterior, ela conterá informações sobre quais linhas da seção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na seção, o bloco não será chamado. Consulte a documentação doRLMSectionedResultsChange
para obter informações sobre como as alterações são relatadas e um exemplo de atualização de umUITableView
.No momento em que o bloco for chamado, o objeto
RLMSectionedResults
será totalmente avaliado e atualizado.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.
RLMResults
*results = [Cão allObjects]; RLMSectionedResults *sectionedResults = [resultados sectionedResultsUsingKeyPath:@ “idade” ascendente:YES]; self.token = [sectionedResults addNotificationBlock:^(RLMSectionedResults *sectionedResults, RLMSectionedResultsChange *changes) { // Acionado apenas uma vez para o exemplo NSLog(@ “sectionedResults.count: %zu”, SectionedResults.count); // => 1 }]; [realm transactionWithBlock:^{ Dog *dog = [[Dog alloc] init]; dog.name = @"Rex"; dog.age = 5; [realm addObject:dog]; }]; // contexto de execução do loop de fim de execuçã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 durante uma transação de escrita, ou quando o Realm que o contém for somente leitura.Aviso
A fila deve ser uma fila serial.
Observação
Ao filtrar com caminhos principais, uma notificação será acionada nos seguintes cenários:
- Um objeto na coleção foi modificado nas propriedades filtradas.
- Um objeto foi modificado na propriedade caminho da chave da seção e o resultado dessa modificação alterou sua posição na seção, ou o objeto pode precisar ser movido para outra seção.
- Um objeto do mesmo tipo observado foi inserido ou excluído do Realm.
Declaração
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock: (nonnull void (^)( RLMSectionedResults<RLMKeyType, RLMObjectType> *_Nonnull, RLMSectionedResultsChange *_Nonnull))block keyPaths:(nullable NSArray<NSString *> *)keyPaths queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMSectionedResults<RLMKeyType, RLMObjectType>, RLMSectionedResultsChange) -> 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.