Lista

public final class List<Element> : RLMSwiftCollectionBase, RealmCollectionImpl where Element : RealmCollectionValue
extension List: ObservableObject, RealmSubscribable
extension List: MutableCollection
extension List: Decodable where Element: Decodable
extension List: Encodable where Element: Encodable

List é o tipo de container no Realm usado para definir relacionamento para muitos.

Como o Array do Swift, o List é 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 Lists são tipos de referência e só são imutáveis se o Realm que os managed for aberto como somente leitura.

As listas podem ser filtradas e classificadas com os mesmos predicados de Results<Element>.

Inicializadores

  • Cria um List que contém objetos de modelo de Realm do tipo Element.

    Declaração

    Swift

    public override init()

Recuperação de objetos

  • Retorna o objeto no índice fornecido (obter) ou substitui o objeto no índice fornecido (conjunto).

    Aviso

    Você só pode definir um objeto durante uma transação de escrita.

    Declaração

    Swift

    public subscript(position: Int) -> Element { get set }

    Parâmetros

    index

    O índice do objeto a ser recuperado ou substituído.

KVC

  • Retorna um Array contendo os resultados de invocar valueForKey(_:) utilizando key 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 invocar valueForKeyPath(_:) utilizando keyPath 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.

Mutação

  • Anexa o objeto fornecido ao final da lista.

    Se o objeto for managed por um Realm diferente do receptor, uma cópia será feita e adicionada ao Realm que managed o receptor.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func append(_ object: Element)

    Parâmetros

    object

    Um objeto.

  • Anexa os objetos na sequência fornecida ao final da lista.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func append<S>(objectsIn objects: S) where Element == S.Element, S : Sequence
  • Insere um objeto no índice fornecido.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Aviso

    Este método lançará uma exceção se for chamado com um índice inválido.

    Declaração

    Swift

    public func insert(_ object: Element, at index: Int)

    Parâmetros

    object

    Um objeto.

    index

    O índice no qual inserir o objeto.

  • Remove um objeto no índice fornecido. O objeto não é removido do Realm que o managed.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Aviso

    Este método lançará uma exceção se for chamado com um índice inválido.

    Declaração

    Swift

    public func remove(at index: Int)

    Parâmetros

    index

    O índice no qual remover o objeto.

  • Remove todos os objetos da lista. 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()
  • Substitui um objeto no índice fornecido por um novo objeto.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Aviso

    Este método lançará uma exceção se for chamado com um índice inválido.

    Declaração

    Swift

    public func replace(index: Int, object: Element)

    Parâmetros

    index

    O índice do objeto a ser substituído.

    object

    Um objeto.

  • Move o objeto no índice de origem fornecido para o índice de destino fornecido.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Aviso

    Este método lançará uma exceção se for chamado com índices inválidos.

    Declaração

    Swift

    public func move(from: Int, to: Int)

    Parâmetros

    from

    O índice do objeto a ser movido.

    to

    índice para o qual o objeto em from deve ser movido.

  • Troca os objetos na lista em determinados índices.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Aviso

    Este método lançará uma exceção se for chamado com índices inválidos.

    Declaração

    Swift

    public func swapAt(_ index1: Int, _ index2: Int)

    Parâmetros

    index1

    O índice do objeto que deve substituir o objeto no índice index2.

    index2

    O índice do objeto que deve substituir o objeto no índice index1.

  • Retorna uma descrição legível por humanos dos objetos contidos na lista.

    Declaração

    Swift

    public override var description: String { get }

Lista

  • 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<List> { get }
  • Substitua os subRange elementos fornecidos por newElements.

    Declaração

    Swift

    public func replaceSubrange<C: Collection, R>(_ subrange: R, with newElements: C)
        where C.Iterator.Element == Element, R: RangeExpression, List<Element>.Index == R.Bound

    Parâmetros

    subrange

    O intervalo de elementos a serem substituídos.

    newElements

    Os novos elementos a serem inseridos na Lista.

Conformidade com MutableCollection, emulação de collection substituível por faixa

  • Declaração

    Swift

    public typealias SubSequence = Slice<List>
  • Retorna os objetos na faixa fornecida (get) ou substitui os objetos na faixa fornecida por novos objetos (set).

    Aviso

    Objeto só podem ser definidos durante uma transação de escrita.

    Declaração

    Swift

    public subscript(bounds: Range<Int>) -> SubSequence { get set }

    Parâmetros

    index

    O índice do objeto a ser recuperado ou substituído.

  • Remove o número especificado de objetos do início da lista. Os objetos não são removidos do Realm que os gerencia.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func removeFirst(_ number: Int = 1)
  • Remove o número especificado de objetos do final da lista. Os objetos não são removidos do Realm que os gerencia.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func removeLast(_ number: Int = 1)
  • Insere os itens na collection fornecida na lista na posição fornecida.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func insert<C>(contentsOf newElements: C, at i: Int) where Element == C.Element, C : Collection
  • Remove objetos da lista na faixa fornecida.

    Aviso

    Este método só pode ser chamado durante uma transação de escrita.

    Declaração

    Swift

    public func removeSubrange<R>(_ boundsExpression: R) where R : RangeExpression, R.Bound == Int

Disponível onde Element: Decodable

Disponível em Element: ObjectBase e RealmCollectionValue

  • projectTo mapeará o List original de Objects ou List de EmbeddedObjects para ProjectedCollection.

    Por exemplo:

     class Person: Object {
         @Persisted var dogs: List<Dog>
     }
     class PersonProjection: Projection<Person> {
         @Projected(\Person.dogs.projectTo.name) var dogNames: ProjectedCollection<String>
     }
    

    Neste código, a lista de cães de Personserá enviada para a lista de nomes de cães via projectTo

    Declaração

    Swift

    public var projectTo: CollectionElementMapper<Element> { get }