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.

Propriedades

  • 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 se type não for RLMPropertyTypeObject.

    Declaração

    Objective-C

    @property (nonatomic, copy, readonly, nullable) NSString *objectClassName;

    Swift

    var objectClassName: String? { get }
  • O Realm que gerencia essa collection, se houver.

    Declaração

    Objective-C

    @property (nonatomic, readonly, nullable) RLMRealm *realm;

    Swift

    var realm: RLMRealm? { 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 }

Acessando objetos de uma coleção

  • 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.

    Declaração

    Objective-C

    - (nullable id)firstObject;

    Swift

    optional func firstObject() -> Any?

    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.

    Declaração

    Objective-C

    - (nullable id)lastObject;

    Swift

    optional func lastObject() -> Any?

    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.

Consultando uma coleção

  • 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 RLMSortDescriptors 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 invocar valueForKey: utilizando key 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 o value e key 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.

Notificações

  • 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 do RLMCollectionChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    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 do RLMCollectionChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    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 do RLMCollectionChange para obter informações sobre como as alterações são relatadas e um exemplo de atualização de um UITableView.

    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.

Resultados seccionados

Agregando valores de propriedade

  • Retorna o valor mínimo (mais baixo) de determinada propriedade entre todos os objetos da coleção.

    NSNumber *min = [results minOfProperty:@"age"];
    

    Aviso

    Você não pode usar este método nas propriedades RLMObject, RLMArray e NSData .

    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 e NSDate 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"];
    

    Aviso

    Você não pode usar este método nas propriedades RLMObject, RLMArray e NSData .

    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 e NSDate 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"];
    

    Aviso

    Você não pode usar este método nas propriedades RLMObject, RLMArray e NSData .

    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 e double 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"];
    

    Aviso

    Você não pode usar este método nas propriedades RLMObject, RLMArray e NSData .

    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 e double são suportadas.

    Valor de retorno

    O valor médio da propriedade fornecida ou nil se os resultados estiverem vazios.

Congelar

  • 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. Consulte RLMRealmConfiguration.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