RealmCollection
public protocol RealmCollection : RealmCollectionBase
Uma collection uniforme de Object
s que pode ser recuperada, filtrada, classificada e operada.
-
O Realm que managed a collection ou
nil
para collection não managed.Declaração
Swift
var realm: Realm? { get }
-
Indica se a collection não pode mais ser acessada.
A coleção não poderá mais ser acessada se
invalidate()
for chamado noRealm
que gerencia a coleção.Declaração
Swift
var isInvalidated: Bool { get }
-
O número de objetos na collection.
Declaração
Swift
var count: Int { get }
-
Uma descrição legível por humanos dos objetos contidos na collection.
Declaração
Swift
var description: String { get }
-
Retorna o índice de um objeto na collection ou
nil
se o objeto não estiver presente.Declaração
Swift
func index(of object: Element) -> Int?
Parâmetros
object
Um objeto.
-
Retorna o índice do primeiro objeto que corresponde ao predicado ou
nil
se nenhum objeto corresponder.Declaração
Swift
func index(matching predicate: NSPredicate) -> Int?
Parâmetros
predicate
O predicado a ser usado para filtrar os objetos.
-
index(matching:
Implementação padrão_: ) Retorna o índice do primeiro objeto que corresponde ao predicado ou
nil
se nenhum objeto corresponder.Implementação padrão
Retorna o índice do primeiro objeto que corresponde ao predicado fornecido ou
nil
se nenhum objeto corresponder.Declaração
Swift
func index(matching predicateFormat: String, _ args: Any...) -> Int?
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
-
filter(_:
Implementação padrão_: ) Retorna um
Results
contendo todos os objetos que correspondem ao predicado fornecido na coleção.Implementação padrão
Retorna um
Results
contendo todos os objetos que correspondem ao predicado fornecido na coleção.Declaração
Swift
func filter(_ predicateFormat: String, _ args: Any...) -> Results<Element>
Parâmetros
predicateFormat
Uma string de formato de predicado, opcionalmente seguida por um número variável de argumentos.
-
Retorna um
Results
contendo os objetos na collection, mas ordenados.Os objetos são classificados com base nos valores do caminho de chave fornecido. Por exemplo, para classificar uma coleção de
Student
s do mais novo para o mais antigo com base em sua propriedadeage
, você pode chamarstudents.sorted(byKeyPath: "age", ascending: true)
.Aviso
As collection só podem ser classificadas por propriedade dos tipos booleano,
Date
,NSDate
, ponto flutuante de precisão única e dupla, inteiro e string.Declaração
Swift
func sorted(byKeyPath keyPath: String, ascending: Bool) -> Results<Element>
Parâmetros
keyPath
O caminho da chave para classificar por.
ascending
A direção para classificar.
-
Retorna um
Results
contendo os objetos na collection, mas ordenados.Aviso
As collection só podem ser classificadas por propriedade dos tipos booleano,
Date
,NSDate
, ponto flutuante de precisão única e dupla, inteiro e string.Declaração
Swift
func sorted<S>(by sortDescriptors: S) -> Results<Element> where S : Sequence, S.Element == SortDescriptor
Parâmetros
sortDescriptors
Uma sequência de
SortDescriptor
s para classificar.
-
Retorna o valor mínimo (mais baixo) da propriedade fornecida entre todos os objetos da collection ou
nil
se a collection estiver vazia.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
MinMaxType
pode ser especificada.Declaração
Swift
func min<T>(ofProperty property: String) -> T? where T : MinMaxType
Parâmetros
property
O nome de uma propriedade cujo valor mínimo é desejado.
-
Retorna o valor máximo (mais alto) da propriedade fornecida entre todos os objetos na collection ou
nil
se a collection estiver vazia.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
MinMaxType
pode ser especificada.Declaração
Swift
func max<T>(ofProperty property: String) -> T? where T : MinMaxType
Parâmetros
property
O nome de uma propriedade cujo valor mínimo é desejado.
-
Retorna a soma da propriedade fornecida para objetos na collection ou
nil
se a collection estiver vazia.Aviso
Somente nomes de propriedades de um tipo em conformidade com o protocolo
AddableType
podem ser usados.Declaração
Swift
func sum<T>(ofProperty property: String) -> T where T : AddableType
Parâmetros
property
O nome de uma propriedade em conformidade com
AddableType
para calcular a soma. -
Retorna o valor médio de uma determinada propriedade sobre todos os objetos na collection ou
nil
se a collection estiver vazia.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
AddableType
pode ser especificada.Declaração
Swift
func average<T>(ofProperty property: String) -> T? where T : AddableType
Parâmetros
property
O nome de uma propriedade cujos valores devem ser somados.
-
Retorna um
Array
contendo os resultados da invocação devalueForKey(_:)
comkey
em cada um dos objetos da collection.Declaração
Swift
func value(forKey key: String) -> Any?
Parâmetros
key
O nome da propriedade cujos valores são desejados.
-
Retorna um
Array
contendo os resultados da invocação devalueForKeyPath(_:)
comkeyPath
em cada um dos objetos da collection.Declaração
Swift
func value(forKeyPath keyPath: String) -> Any?
Parâmetros
keyPath
O caminho da chave para a propriedade cujos valores são desejados.
-
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
Swift
func setValue(_ value: Any?, forKey key: String)
Parâmetros
value
O valor do objeto.
key
O nome da propriedade cujo valor deve ser definido em cada objeto.
-
Registra um bloco a ser chamado cada vez que a collection for alterada.
O bloco será chamado de forma assíncrona com os resultados iniciais 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
que é passado para o bloco reporta, na forma de índices dentro da collection, quais dos objetos foram adicionados, removidos ou modificados durante cada transação de escrita. Consulte a documentação doRealmCollectionChange
para obter mais informações sobre as informações de alteração fornecidas e um exemplo de como usá-las para atualizar umUITableView
.No momento em que o bloqueio for chamado, a coleção será totalmente avaliada e atualizada e, desde que você não execute uma transação de gravação na mesma thread ou chame explicitamente
realm.refresh()
, acessá-la nunca executará o bloqueio trabalho.Se nenhuma fila for fornecida, as notificações serão entregues por meio do loop de execução padrão e, portanto, não poderão ser entregues enquanto o loop de execução estiver bloqueado por outra atividade. Se uma fila for fornecida, as notificações serão entregues para essa fila. 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 a coleção inicial.
Por exemplo, o código a seguir executa uma transação de escrita imediatamente após adicionar o bloqueio de notificação, para que não haja oportunidade para que a notificação inicial seja entregue primeiro. Como resultado, a notificação inicial refletirá o estado do Realm após a transação de escrita.
let results = realm.objects(Dog.self) print("dogs.count: \(dogs?.count)") // => 0 let token = dogs.observe { changes in switch changes { case .initial(let dogs): // Will print "dogs.count: 1" print("dogs.count: \(dogs.count)") break case .update: // Will not be hit in this example break case .error: break } } try! realm.write { let dog = Dog() dog.name = "Rex" person.dogs.append(dog) } // end of run loop execution context
Você deve reter o token retornado pelo tempo que desejar que as atualizações sejam 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.
Declaração
Swift
func observe(on queue: DispatchQueue?, _ block: @escaping (RealmCollectionChange<Self>) -> Void) -> NotificationToken
Parâmetros
queue
A fila de despacho em série para receber a notificação. Se
nil
, as notificações são entregues ao thread atual.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.
-
Retorna se esta coleção estiver congelada
Declaração
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. ConsulteRealm.Configuration.maximumNumberOfActiveVersions
para obter mais informações.Declaração
Swift
func freeze() -> Self
-
Retorna uma versão ativa (mutável) 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
Swift
func thaw() -> Self?
-
objectWillChange
Método de extensãoUma editora que emite um vazio toda vez que a collection muda.
Apesar do nome, isso na verdade é emitido após a mudança da collection.
Declaração
Swift
public var objectWillChange: RealmPublishers.WillChange<Self> { get }
-
collectionPublisher
Método de extensãoUm editor que emite a collection toda vez que a collection é alterada.
Declaração
Swift
public var collectionPublisher: RealmPublishers.Value<Self> { get }
-
changesetPublisher
Método de extensãoUm editor que emite um conjunto de alterações de collection toda vez que a collection é alterada.
Declaração
Swift
public var changesetPublisher: RealmPublishers.CollectionChangeset<Self> { get }
-
min()
Método de extensãoRetorna o valor mínimo (mais baixo) da coleção ou
nil
se a coleção estiver vazia.Declaração
Swift
func min() -> Element.Wrapped?
-
max()
Método de extensãoRetorna o valor máximo (mais alto) da collection ou
nil
se a collection estiver vazia.Declaração
Swift
func max() -> Element.Wrapped?
-
sum()
Método de extensãoRetorna a soma dos valores na collection ou
nil
se a collection estiver vazia.Declaração
Swift
func sum() -> Element
-
average()
Método de extensãoRetorna a média de todos os valores na collection.
Declaração
Swift
func average<T>() -> T? where T : AddableType
-
sum()
Método de extensãoRetorna a soma dos valores na collection ou
nil
se a collection estiver vazia.Declaração
Swift
func sum() -> Element.Wrapped
-
average()
Método de extensãoRetorna a média de todos os valores na collection.
Declaração
Swift
func average<T>() -> T? where T : AddableType
-
sorted(ascending:
Método de extensão) Retorna um
Results
contendo os objetos na collection, mas ordenados.objeto são classificados com base em seus valores. Por exemplo, para classificar uma coleção de
Date
s do mais recente para o mais antigo, você pode chamardates.sorted(ascending: true)
.Declaração
Swift
func sorted(ascending: Bool = true) -> Results<Element>
Parâmetros
ascending
A direção para classificar.
-
sorted(ascending:
Método de extensão) Retorna um
Results
contendo os objetos na collection, mas ordenados.objeto são classificados com base em seus valores. Por exemplo, para classificar uma coleção de
Date
s do mais recente para o mais antigo, você pode chamardates.sorted(ascending: true)
.Declaração
Swift
func sorted(ascending: Bool = true) -> Results<Element>
Parâmetros
ascending
A direção para classificar.