RLMCollection
Objective-C
@protocol RLMCollection <NSFastEnumeration, RLMThreadConfined>
Swift
protocol RLMCollection : NSFastEnumeration, RLMThreadConfined
Uma coleção homogênea de objetos gerenciados pelo Realm. Exemplos de tipos em conformidade incluem RLMArray
, RLMSet
, RLMResults
e RLMLinkingObjects
.
-
O número de objetos na collection.
Declaração
Objective-C
@property (nonatomic, readonly) NSUInteger count;
Swift
var count: UInt { get }
-
O tipo dos objetos na coleção.
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 }
-
O nome da classe dos objetos contidos na collection.
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 a coleção não é mais válida.
A coleção se torna inválida se
invalidate
for chamado no domínio de Realm. Collections não gerenciadas nunca são invalidadas.Declaração
Objective-C
@property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;
Swift
var isInvalidated: Bool { get }
-
Retorna o objeto no índice especificado.
Declaração
Objective-C
- (nonnull id)objectAtIndex:(NSUInteger)index;
Swift
func object(at index: UInt) -> Any
Parâmetros
index
O índice a procurar.
Valor de retorno
Um objeto do tipo contido na coleção.
-
Retorna uma array contendo os objetos na coleção nos índices especificados por um determinado conjunto de índices.
nil
será retornado se o conjunto de índices contiver um índice fora dos limites das collections.Declaração
Objective-C
- (nullable NSArray *)objectsAtIndexes:(nonnull NSIndexSet *)indexes;
Swift
optional func objects(at indexes: IndexSet) -> [Any]?
Parâmetros
indexes
Os índices na coleção dos quais recuperar objetos.
Valor de retorno
Os objetos nos índices especificados.
-
Retorna o primeiro objeto na coleção.
O RLMSet não é ordenado e, portanto, para os conjuntos, retornará um objeto arbitrário no conjunto. Não é garantido que seja um objeto diferente do que o
lastObject
fornece, mesmo que o conjunto tenha vários objetos nele.Retorna
nil
se for chamado em uma coleção vazia.Valor de retorno
Um objeto do tipo contido na coleção.
-
Retorna o último objeto da coleção.
O RLMSet não é ordenado e, portanto, para os conjuntos, retornará um objeto arbitrário no conjunto. Não é garantido que seja um objeto diferente do que o
firstObject
fornece, mesmo que o conjunto tenha vários objetos nele.Retorna
nil
se for chamado em uma coleção vazia.Valor de retorno
Um objeto do tipo contido na coleção.
-
Retorna o índice de um objeto na coleção.
Retorna
NSNotFound
se o objeto não for encontrado na coleção.Declaração
Objective-C
- (NSUInteger)indexOfObject:(nonnull id)object;
Swift
optional func index(of object: Any) -> UInt
Parâmetros
object
Um objeto (do mesmo tipo que o retornado do seletor
objectClassName
). -
Retorna o índice do primeiro objeto na collection que corresponde ao predicado.
Declaração
Objective-C
- (NSUInteger)indexOfObjectWhere:(nonnull NSString *)predicateFormat, ...;
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
Valor de retorno
O índice do objeto, ou
NSNotFound
se o objeto não for encontrado na collection. -
Retorna o índice do primeiro objeto na collection que corresponde ao predicado.
Declaração
Objective-C
- (NSUInteger)indexOfObjectWithPredicate:(nonnull NSPredicate *)predicate;
Swift
optional func indexOfObject(with predicate: NSPredicate) -> UInt
Parâmetros
predicate
O predicado com o qual filtrar os objetos.
Valor de retorno
O índice do objeto, ou
NSNotFound
se o objeto não for encontrado na collection.
-
Retorna todos os objetos que correspondem ao predicado fornecido na coleção.
Isso é compatível apenas com collections gerenciadas.
Declaração
Objective-C
- (nonnull RLMResults *)objectsWhere:(nonnull NSString *)predicateFormat, ...;
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
Valor de retorno
Um
RLMResults
contendo objetos que correspondem ao predicado fornecido. -
Retorna todos os objetos que correspondem ao predicado fornecido na coleção.
Isso é compatível apenas com collections gerenciadas.
Declaração
Objective-C
- (nonnull RLMResults *)objectsWithPredicate:(nonnull NSPredicate *)predicate;
Swift
func objects(with predicate: NSPredicate) -> RLMResults
Parâmetros
predicate
O predicado com o qual filtrar os objetos.
Valor de retorno
Um
RLMResults
contendo objetos que correspondem ao predicado fornecido. -
Retorna um
RLMResults
classificado da coleção.Isso é compatível apenas com collections gerenciadas.
Declaração
Objective-C
- (nonnull RLMResults *)sortedResultsUsingKeyPath:(nonnull NSString *)keyPath ascending:(BOOL)ascending;
Swift
func sortedResults(usingKeyPath keyPath: String, ascending: Bool) -> RLMResults
Parâmetros
keyPath
O keyPath pelo qual classificar.
ascending
A direção para classificar.
Valor de retorno
Um
RLMResults
classificado pelo caminho da chave especificado. -
Retorna um
RLMResults
classificado da coleção.Isso é compatível apenas com collections gerenciadas.
Declaração
Objective-C
- (nonnull RLMResults *)sortedResultsUsingDescriptors: (nonnull NSArray<RLMSortDescriptor *> *)properties;
Swift
func sortedResults(using properties: [RLMSortDescriptor]) -> RLMResults
Parâmetros
properties
Uma array de
RLMSortDescriptor
s para classificar.Valor de retorno
Um
RLMResults
classificado pelas propriedades especificadas. -
Retorna um
RLMResults
distinto da coleção.Isso é compatível apenas com collections gerenciadas.
Declaração
Objective-C
- (nonnull RLMResults *)distinctResultsUsingKeyPaths: (nonnull NSArray<NSString *> *)keyPaths;
Swift
func distinctResults(usingKeyPaths keyPaths: [String]) -> RLMResults
Parâmetros
keyPaths
Os principais caminhos utilizados produzem resultados distintos
Valor de retorno
Um
RLMResults
distinguido com base nos caminhos-chave especificados -
Retorna um
NSArray
contendo os resultados de invocarvalueForKey:
utilizandokey
em cada um dos objetos da coleção.Declaração
Objective-C
- (nullable id)valueForKey:(nonnull NSString *)key;
Swift
func value(forKey key: String) -> Any?
Parâmetros
key
O nome da propriedade.
Valor de retorno
Um
NSArray
contendo resultados. -
Retorna o valor da propriedade derivada identificada por um determinado caminho de chave.
Declaração
Objective-C
- (nullable id)valueForKeyPath:(nonnull NSString *)keyPath;
Swift
func value(forKeyPath keyPath: String) -> Any?
Parâmetros
keyPath
Um caminho principal do formato relacionamento.property (com um ou mais relacionamentos).
Valor de retorno
O valor da propriedade derivada identificada por keyPath.
-
Invoca
setValue:forKey:
em cada um dos objetos da coleção utilizando ovalue
ekey
especificados.Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Objective-C
- (void)setValue:(nullable id)value forKey:(nonnull NSString *)key;
Swift
func setValue(_ value: Any?, forKey key: String)
Parâmetros
value
O valor do objeto.
key
O nome da propriedade.
-
Registra um bloco a ser chamado cada vez que a collection for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial e, em seguida, chamado novamente após cada transação de gravação que altere qualquer um dos objetos da coleção ou quais objetos estão na coleção.
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 coleção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na coleção de resultados, 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
.No momento em que o bloco é chamado, o objeto de coleção será totalmente avaliado e atualizado e, desde que você não execute uma transação de escrita na mesma thread ou chame explicitamente
-[RLMRealm refresh]
, acessá-lo nunca será executado bloqueando o trabalho.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]; NSLog(@ “dogs.count: %zu”, cães.count); // => 0 self.token = [results addNotificationBlock:^(RLLMResults *dogs, RLMCollectionChange *changes, NSError *error) { // Acionado apenas uma vez para o exemplo NSLog(@"dogs.count: %zu" , cães.count); // => 1 }]; [realm transactionWithBlock:^{ Dog *dog = [[Dog alloc] init]; dog.name = @"Rex"; [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 ou congelado.
Declaração
Objective-C
- (nonnull RLMNotificationToken *)addNotificationBlock: (nonnull void (^)(RLMResults *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults?, RLMCollectionChange?, (any Error)?) -> 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 collection for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial e, em seguida, chamado novamente após cada transação de gravação que altere qualquer um dos objetos da coleção ou quais objetos estão na coleção.
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 coleção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na coleção de resultados, 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
.No momento em que o bloco é chamado, o objeto de coleção será totalmente avaliado e atualizado e, desde que você não execute uma transação de escrita na mesma thread ou chame explicitamente
-[RLMRealm refresh]
, acessá-lo nunca será executado bloqueando o trabalho.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 (^)(RLMResults *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults?, 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 a collection for alterada.
O bloco será chamado de forma assíncrona com a coleção inicial e, em seguida, chamado novamente após cada transação de gravação que altere qualquer um dos objetos da coleção ou quais objetos estão na coleção.
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 coleção foram adicionadas, removidas ou modificadas. Se uma transação de escrita não modificou nenhum objeto na coleção de resultados, 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
.No momento em que o bloco é chamado, o objeto de coleção será totalmente avaliado e atualizado e, desde que você não execute uma transação de escrita na mesma thread ou chame explicitamente
-[RLMRealm refresh]
, acessá-lo nunca será executado bloqueando o trabalho.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 (^)(RLMResults *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block keyPaths:(nullable NSArray<NSString *> *)keyPaths queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMResults?, 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.
queue
A fila em série para a qual entregar notificações.
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.
-
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.
-
Retorna o valor mínimo (mais baixo) de determinada propriedade entre todos os objetos da coleção.
NSNumber *min = [results 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 os resultados estiverem vazios. -
Retorna o valor máximo (mais alto) de determinada propriedade entre todos os objetos na collection.
NSNumber *max = [results 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 os Resultados estiverem vazios. -
Retorna a soma dos valores de uma determinada propriedade sobre todos os objetos na coleção.
NSNumber *sum = [results 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 na coleção.
NSNumber *average = [results 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 os resultados estiverem vazios.
-
Indica se a collection está congelada.
As coleções congeladas são imutáveis e podem ser acessadas de qualquer thread. Os objetos lidos de uma coleção congelada também serão congelados.
Declaração
Objective-C
@required @property (nonatomic, readonly, getter=isFrozen) BOOL frozen;
Swift
var isFrozen: Bool { get }
-
Retorna um snapshot congelado (imutável) desta collection.
A cópia congelada é uma coleção imutável que contém os mesmos dados que esta coleção contém atualmente, mas não será atualizada quando forem feitas gravações no Realm que a contém. Ao contrário das collections 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 collection congelada por um longo período enquanto executa 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