RLMCollectionChange

Objective-C

@interface RLMCollectionChange : NSObject

Swift

@_nonSendable(_assumed) class RLMCollectionChange : NSObject

Um objeto RLMCollectionChange encapsula informações sobre alterações em coleções que são relatadas por notificações do Realm .

RLMCollectionChange é passado para os blocos de notificação registrados com -addNotificationBlock em RLMArray e RLMResults e relata quais linhas na coleção foram alteradas desde a última vez que o bloco de notificação foi chamado.

As informações de alteração estão disponíveis em dois formatos: uma array simples de índices de linha na coleção para cada tipo de alteração e uma array de caminhos de índice em uma seção solicitada adequada para passar diretamente para os métodos de atualização em lote do UITableView . Um exemplo completo de atualização de um UITableView denominado tv:

[tv beginUpdates];
[tv deleteRowsAtIndexPaths:[changes deletionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[tv insertRowsAtIndexPaths:[changes insertionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[tv reloadRowsAtIndexPaths:[changes modificationsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
[tv endUpdates];

Todas as arrays em um RLMCollectionChange são sempre classificadas em ordem crescente.

  • Os índices de objetos na versão anterior da collection que foram removidos desta.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NSArray<NSNumber *> *_Nonnull deletions;

    Swift

    var deletions: [NSNumber] { get }
  • Os índices na nova versão da collection que foram inseridos recentemente.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NSArray<NSNumber *> *_Nonnull insertions;

    Swift

    var insertions: [NSNumber] { get }
  • Os índices da nova versão da collection que foram modificados.

    Para RLMResults, isso significa que uma ou mais propriedades do objeto nesse índice foram modificadas (ou um objeto vinculado por esse objeto foi modificado).

    Para RLMArray, a própria array que está sendo modificada para conter um objeto diferente nesse índice também será relatada como uma modificação.

    Declaração

    Objective-C

    @property (nonatomic, readonly) NSArray<NSNumber *> *_Nonnull modifications;

    Swift

    var modifications: [NSNumber] { get }
  • Retorna os caminhos do índice dos índices de exclusão na seção fornecida.

    Declaração

    Objective-C

    - (nonnull NSArray<NSIndexPath *> *)deletionsInSection:(NSUInteger)section;

    Swift

    func deletions(inSection section: UInt) -> [IndexPath]
  • Retorna os caminhos do índice dos índices de inserção na seção fornecida.

    Declaração

    Objective-C

    - (nonnull NSArray<NSIndexPath *> *)insertionsInSection:(NSUInteger)section;

    Swift

    func insertions(inSection section: UInt) -> [IndexPath]
  • Retorna os caminhos do índice dos índices de modificação na seção fornecida.

    Declaração

    Objective-C

    - (nonnull NSArray<NSIndexPath *> *)modificationsInSection:(NSUInteger)section;

    Swift

    func modifications(inSection section: UInt) -> [IndexPath]