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]