MutableSet
public final class MutableSet<Element> : RLMSwiftCollectionBase where Element : RealmCollectionValue
extension MutableSet: ObservableObject, RealmSubscribable
extension MutableSet: RealmCollection
extension MutableSet: Decodable where Element: Decodable
extension MutableSet: Encodable where Element: Encodable
MutableSet
é o tipo de container no Realm usado para definir relacionamento para muitos com valores distintos como objeto.
Como o Set
do Swift, o MutableSet
é um tipo genérico parametrizado de acordo com o tipo que armazena. Pode ser uma subclasse Object
ou um dos seguintes tipos: Bool
, Int
, Int8
, Int16
, Int32
, Int64
, Float
, Double
, String
, Data
, Date
, Decimal128
e ObjectId
(e suas versões opcionais)
Ao contrário das collection nativas do Swift, os MutableSet
s são tipos de referência e só são imutáveis se o Realm que os managed for aberto como somente leitura.
Os MutableSets podem ser filtrados e classificados com os mesmos predicados de Results<Element>
.
Propriedades do tipo MutableSet
definido em Object
subclasses devem ser declaradas como let
e não podem ser dynamic
.
-
O Realm que gerencia o conjunto, ou
nil
se o conjunto não for gerenciado.Declaração
Swift
public var realm: Realm? { get }
-
Indica se o conjunto não pode mais ser acessado.
Declaração
Swift
public var isInvalidated: Bool { get }
-
Cria um
MutableSet
que contém objetos de modelo de Realm do tipoElement
.Declaração
Swift
public override init()
-
Retorna o número de objetos neste MutableSet.
Declaração
Swift
public var count: Int { get }
-
Retorna um
Array
contendo os resultados de invocarvalueForKey(_:)
utilizandokey
em cada um dos objetos da coleção.Declaração
Swift
@nonobjc public func value(forKey key: String) -> [AnyObject]
-
Retorna um
Array
contendo os resultados de invocarvalueForKeyPath(_:)
utilizandokeyPath
em cada um dos objetos da coleção.Declaração
Swift
@nonobjc public func value(forKeyPath keyPath: String) -> [AnyObject]
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
public override 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.
-
Retorna um valor booleano indicando se o conjunto contém o objeto fornecido.
Declaração
Swift
public func contains(_ object: Element) -> Bool
Parâmetros
object
O elemento a encontrar no MutableSet.
-
Retorna um valor booleano que indica se este conjunto é um subconjunto do conjunto fornecido.
Declaração
Swift
public func isSubset(of possibleSuperset: MutableSet<Element>) -> Bool
Parâmetros
object
Outro MutableSet para comparar.
-
Retorna um valor booleano que indica se este conjunto intersecciona com outro conjunto fornecido.
Declaração
Swift
public func intersects(_ otherSet: MutableSet<Element>) -> Bool
Parâmetros
object
Outro MutableSet para comparar.
-
Retorna um
Results
contendo os objetos no conjunto, mas classificados.Os objetos são classificados com base nos valores do caminho da chave fornecido. Por exemplo, para classificar um conjunto de
Student
s do mais novo para o mais antigo com base em sua propriedadeage
, você pode chamarstudents.sorted(byKeyPath: "age", ascending: true)
.Aviso
Os MutableSets só podem ser classificados por propriedades dos tipos booleano,
Date
,NSDate
, ponto flutuante de precisão única e dupla , inteiro e string.Declaração
Swift
public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Element>
Parâmetros
keyPath
O caminho da chave para classificar por.
ascending
A direção para classificar.
-
Retorna um
Results
contendo os objetos no conjunto, mas classificados.Aviso
Os MutableSets só podem ser classificados por propriedades dos tipos booleano,
Date
,NSDate
, ponto flutuante de precisão única e dupla , inteiro e string.Declaração
Swift
public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Element> where S.Iterator.Element == SortDescriptor
-
Retorna o valor mínimo (mais baixo) de determinada propriedade entre todos os objetos do conjunto, ou
nil
se o conjunto estiver vazio.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
MinMaxType
pode ser especificada.Declaração
Swift
public 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) de determinada propriedade entre todos os objetos do conjunto, ou
nil
se o conjunto estiver vazio.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
MinMaxType
pode ser especificada.Declaração
Swift
public func max<T>(ofProperty property: String) -> T? where T : MinMaxType
Parâmetros
property
O nome de uma propriedade cujo valor máximo é desejado.
-
Retorna a soma dos valores de uma determinada propriedade sobre todos os objetos no conjunto.
Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
AddableType
pode ser especificada.Declaração
Swift
public func sum<T>(ofProperty property: String) -> T where T : AddableType
Parâmetros
property
O nome de uma propriedade cujos valores devem ser somados.
-
Retorna o valor médio de uma determinada propriedade sobre todos os objetos do conjunto ou
nil
se o conjunto estiver vazio.Aviso
Somente uma propriedade cujo tipo esteja em conformidade com o protocolo
AddableType
pode ser especificada.Declaração
Swift
public func average<T>(ofProperty property: String) -> T? where T : AddableType
Parâmetros
property
O nome de uma propriedade cujo valor médio deve ser calculado.
-
Insere um objeto no conjunto se ainda não estiver presente.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Swift
public func insert(_ object: Element)
Parâmetros
object
Um objeto.
-
Insere a sequência fornecida de objetos no conjunto, se ainda não estiver presente.
Aviso
Este método só pode ser chamado durante uma transação de escrita.Declaração
Swift
public func insert<S>(objectsIn objects: S) where Element == S.Element, S : Sequence
-
Remove um objeto no conjunto, se presente. O objeto não é removido do Realm que o managed.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Swift
public func remove(_ object: Element)
Parâmetros
object
O objeto a ser removido.
-
Remove todos os objetos do set. O objeto não é removido do Realm que managed eles.
Aviso
Este método só pode ser chamado durante uma transação de escrita.Declaração
Swift
public func removeAll()
-
Muta o conjunto no local com os elementos que são comuns a este conjunto e à sequência fornecida.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Swift
public func formIntersection(_ other: MutableSet<Element>)
Parâmetros
other
Outro conjunto.
-
Muta o conjunto no local e remove os elementos do conjunto fornecido deste conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Swift
public func subtract(_ other: MutableSet<Element>)
Parâmetros
other
Outro conjunto.
-
Insere os elementos da sequência fornecida no conjunto.
Aviso
Este método só pode ser chamado durante uma transação de escrita.
Declaração
Swift
public func formUnion(_ other: MutableSet<Element>)
Parâmetros
other
Outro conjunto.
-
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.insert(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
public func observe(on queue: DispatchQueue? = nil, _ block: @escaping (RealmCollectionChange<MutableSet>) -> 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.
-
Declaração
Swift
public var isFrozen: Bool { get }
-
Declaração
Swift
public func freeze() -> MutableSet
-
Declaração
Swift
public func thaw() -> MutableSet?
-
Retorna uma descrição legível por humanos dos objetos contidos no MutableSet.
Declaração
Swift
@objc public override var description: String { get }
-
Uma 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<MutableSet> { get }
-
O tipo dos objetos armazenados dentro do conjunto.
Declaração
Swift
public typealias ElementType = Element
-
Retorna um
RLMIterator
que produz elementos sucessivos noMutableSet
.Declaração
Swift
public func makeIterator() -> RLMIterator<Element>
-
A posição do primeiro elemento em uma coleção não vazia. Idêntico ao endIndex em uma coleta vazia.
Declaração
Swift
public var startIndex: Int { get }
-
A posição "além do final" da collection. endIndex não é um argumento válido para subscrito e está sempre acessível a partir de startIndex por zero ou mais aplicações de sucessor ().
Declaração
Swift
public var endIndex: Int { get }
-
Declaração
Swift
public func index(after i: Int) -> Int
-
Declaração
Swift
public func index(before i: Int) -> Int
-
Aviso
O pedido não é garantido em um MutableSet. A assinatura é implementada por conveniência e não deve ser invocada.Declaração
Swift
public subscript(position: Int) -> Element { get }
-
Aviso
O pedido não é garantido em um MutableSet.first
está implementado por conveniência não deve ser considerado.Declaração
Swift
public var first: Element? { get }
-
Retorna o valor mínimo (mais baixo) no conjunto ou
nil
se o conjunto estiver vazio.Declaração
Swift
public func min() -> Element?
-
Retorna o valor máximo (mais alto) no conjunto ou
nil
se o conjunto estiver vazio.Declaração
Swift
public func max() -> Element?
-
Retorna a soma dos valores no conjunto.
Declaração
Swift
public func sum() -> Element
-
Retorna a média dos valores no conjunto ou
nil
se o conjunto estiver vazio.Declaração
Swift
public func average<T>() -> T? where T : AddableType
-
Declaração
Swift
public convenience init(from decoder: Decoder) throws
-
Declaração
Swift
public func encode(to encoder: Encoder) throws