RLMSection

Objective-C

@interface RLMSection<RLMKeyType : id <RLMValue>, RLMObjectType>
    : NSObject <RLMSectionedResult>

Swift

@_nonSendable(_assumed) class RLMSection<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : AnyObject

Uma RLMSection contém os objetos que pertencem a uma chave de seção especificada.

  • key

    O valor que representa a chave nesta seção.

    Declaração

    Objective-C

    @property (nonatomic, readonly) RLMKeyType _Nonnull key;

    Swift

    var key: RLMKeyType { get }
  • A contagem de objetos na seção.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NSUInteger count;

    Swift

    var count: UInt { get }
  • Retorna o objeto para um determinado índice na seção.

    Declaração

    Objective-C

    - (nonnull RLMObjectType)objectAtIndexedSubscript:(NSUInteger)index;

    Swift

    subscript(index: UInt) -> RLMObjectType { get }
  • Retorna o objeto para um determinado índice na seção.

    Declaração

    Objective-C

    - (nonnull RLMObjectType)objectAtIndex:(NSUInteger)index;

    Swift

    func object(at index: UInt) -> RLMObjectType

Congelar

  • Retorna um snapshot congelado (imutável) desta seção.

    A cópia congelada é uma seção imutável que contém os mesmos dados que esta seção contém atualmente, mas não será atualizada quando forem feitas gravações no Realm que a contém. Ao contrário das arrays ativas, as collections congeladas podem ser acessadas 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 seção 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. Consulte RLMRealmConfiguration.maximumNumberOfActiveVersions para mais informações.

    Declaração

    Objective-C

    - (nonnull instancetype)freeze;

    Swift

    func freeze() -> Self
  • Retorna uma versão ativa desta seção congelada.

    Este método resolve uma referência a uma cópia ativa da mesma seção congelada. 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 seção subjacente está congelada.

    As seções 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 }

Notificações da seção

  • Registra um bloco a ser chamado cada vez que a seção for alterada.

    O bloco será chamado de forma assíncrona com a seção inicial e, em seguida, chamado novamente após cada transação de gravação 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 do RLMSectionedResultsChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    No momento em que o bloco for chamado, o objeto RLMSection 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]; RLMSection *section = SectionedResults[0] // a seção com cães com idade de ' 5' já existe.

    self.token = [section addNotificationBlock:^(RLMSection *section, RLMSectionedResultsChange *changes) { // Somente disparado uma vez para o exemplo NSLog(@ “section.count: %zu", section.count); // => 2 }]; [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 (^)(RLMSection<RLMKeyType, RLMObjectType> *_Nonnull,
                          RLMSectionedResultsChange *_Nonnull))block;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSection<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 cada vez que a seção for alterada.

    O bloco será chamado de forma assíncrona com a seção inicial e, em seguida, chamado novamente após cada transação de gravação 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 do RLMSectionedResultsChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    No momento em que o bloco for chamado, o objeto RLMSection 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]; RLMSection *section = SectionedResults[0] // a seção com cães com idade de ' 5' já existe.

    self.token = [section addNotificationBlock:^(RLMSection *section, RLMSectionedResultsChange *changes) { // Somente disparado uma vez para o exemplo NSLog(@ “section.count: %zu", section.count); // => 2 }]; [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 (^)(RLMSection<RLMKeyType, RLMObjectType> *_Nonnull,
                              RLMSectionedResultsChange *_Nonnull))block
                       queue:(nonnull dispatch_queue_t)queue;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSection<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 cada vez que a seção for alterada.

    O bloco será chamado de forma assíncrona com a seção inicial e, em seguida, chamado novamente após cada transação de gravação 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 do RLMSectionedResultsChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    No momento em que o bloco for chamado, o objeto RLMSection 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]; RLMSection *section = SectionedResults[0] // a seção com cães com idade de ' 5' já existe.

    self.token = [section addNotificationBlock:^(RLMSection *section, RLMSectionedResultsChange *changes) { // Somente disparado uma vez para o exemplo NSLog(@ “section.count: %zu", section.count); // => 2 }]; [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 (^)(RLMSection<RLMKeyType, RLMObjectType> *_Nonnull,
                              RLMSectionedResultsChange *_Nonnull))block
                    keyPaths:(nonnull NSArray<NSString *> *)keyPaths;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSection<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 cada vez que a seção for alterada.

    O bloco será chamado de forma assíncrona com a seção inicial e, em seguida, chamado novamente após cada transação de gravação 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 do RLMSectionedResultsChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    No momento em que o bloco for chamado, o objeto RLMSection 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]; RLMSection *section = SectionedResults[0] // a seção com cães com idade de ' 5' já existe.

    self.token = [section addNotificationBlock:^(RLMSection *section, RLMSectionedResultsChange *changes) { // Somente disparado uma vez para o exemplo NSLog(@ “section.count: %zu", section.count); // => 2 }]; [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 (^)(RLMSection<RLMKeyType, RLMObjectType> *_Nonnull,
                              RLMSectionedResultsChange *_Nonnull))block
                    keyPaths:(nullable NSArray<NSString *> *)keyPaths
                       queue:(nullable dispatch_queue_t)queue;

    Swift

    func addNotificationBlock(_ block: @escaping (RLMSection<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.