リスト

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 は、対多関係を定義するために使用される Realm のコンテナ タイプです。

Swift のArrayと同様に、 Listは、保存する型をパラメータ化するジェネリック型です。 これは、 Objectサブクラスまたは次のいずれかのタイプになります。 BoolIntInt8Int16Int32Int64FloatDoubleStringDataDateDecimal128ObjectId (およびこれらの任意バージョン)

Swift のネイティブ コレクションとは異なり、 Listは参照型であり、それを管理する Realm が読み取り専用として開かれている場合にのみ不変です。

Results<Element>と同じ述語でリストをフィルタリングおよび並べ替えることができます。

初期化子

  • タイプElementの Realm モデル オブジェクトを保持するListを作成します。

    宣言

    Swift

    public override init()

オブジェクト検索

  • 指定されたインデックスのオブジェクトを返します(get)、または指定されたインデックスのオブジェクトを置き換えます(set)。

    警告

    書込みトランザクション中にのみオブジェクトを設定できます。

    宣言

    Swift

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

    パラメーター

    index

    検索または置換するオブジェクトのインデックス。

KVM

  • コレクションの各オブジェクトでkeyを使用してvalueForKey(_:)を呼び出した結果を含むArrayを返します。

    宣言

    Swift

    @nonobjc
    public func value(forKey key: String) -> [AnyObject]
  • コレクションの各オブジェクトでkeyPathを使用してvalueForKeyPath(_:)を呼び出した結果を含むArrayを返します。

    宣言

    Swift

    @nonobjc
    public func value(forKeyPath keyPath: String) -> [AnyObject]

    パラメーター

    keyPath

    値が必要なプロパティへのキー パス。

ミューテーション

  • 指定されたオブジェクトをリストの末尾に追加します。

    オブジェクトがレシーバーとは異なる Realm によって管理されている場合は、コピーが作成され、レシーバーを管理する Realm に追加されます。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func append(_ object: Element)

    パラメーター

    object

    オブジェクト。

  • 指定されたシーケンス内のオブジェクトをリストの末尾に追加します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func append<S>(objectsIn objects: S) where Element == S.Element, S : Sequence
  • 指定されたインデックスにオブジェクトを挿入します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    警告

    このメソッドは、無効なインデックスで呼び出されると例外をスローします。

    宣言

    Swift

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

    パラメーター

    object

    オブジェクト。

    index

    オブジェクトを挿入するインデックス。

  • 指定されたインデックスにあるオブジェクトを削除します。 オブジェクトは、それを管理する Realm から削除されません。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    警告

    このメソッドは、無効なインデックスで呼び出されると例外をスローします。

    宣言

    Swift

    public func remove(at index: Int)

    パラメーター

    index

    オブジェクトを削除するインデックス。

  • すべてのオブジェクトをリストから削除します。 オブジェクトは、それらを管理する Realm から削除されません。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func removeAll()
  • 指定されたインデックス内のオブジェクトを新しいオブジェクトに置き換えます。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    警告

    このメソッドは、無効なインデックスで呼び出されると例外をスローします。

    宣言

    Swift

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

    パラメーター

    index

    置き換えられるオブジェクトのインデックス。

    object

    オブジェクト。

  • 指定されたソース インデックスにあるオブジェクトを指定された宛先インデックスに移動します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    警告

    このメソッドは、無効なインデックスで呼び出された場合、例外をスローします。

    宣言

    Swift

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

    パラメーター

    from

    移動するオブジェクトのインデックス。

    to

    fromのオブジェクトを移動するインデックス。

  • 指定されたインデックスでリスト内のオブジェクトを交換します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    警告

    このメソッドは、無効なインデックスで呼び出された場合、例外をスローします。

    宣言

    Swift

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

    パラメーター

    index1

    インデックスindex2のオブジェクトを置き換えるオブジェクトのインデックス。

    index2

    インデックスindex1のオブジェクトを置き換えるオブジェクトのインデックス。

  • リストに含まれるオブジェクトの、人間が判読可能な説明を返します。

    宣言

    Swift

    public override var description: String { get }

リスト

  • コレクションが変更されるたびに Vid を発行する出版社。

    名前に関係なく、コレクションが変更されたにこれが実際に発行します。

    宣言

    Swift

    public var objectWillChange: RealmPublishers.WillChange<List> { get }
  • 指定されたsubRangeの要素をnewElementsに置き換えます。

    宣言

    Swift

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

    パラメーター

    subrange

    置き換えられる要素の範囲。

    newElements

    リストに挿入される新しい要素。

MutableCollection との準拠、範囲置き換え可能なコレクションのエミュレート

  • 宣言

    Swift

    public typealias SubSequence = Slice<List>
  • 指定された範囲のオブジェクトを返します(get)、または指定された範囲のオブジェクトを新しいオブジェクトに置き換えます(set)。

    警告

    オブジェクトは、書込みトランザクション中にのみ設定できます。

    宣言

    Swift

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

    パラメーター

    index

    検索または置換するオブジェクトのインデックス。

  • 指定した数のオブジェクトをリストの先頭から削除します。 オブジェクトは、それらを管理する Realm から削除されません。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func removeFirst(_ number: Int = 1)
  • 指定した数のオブジェクトをリストの末尾から削除します。 オブジェクトは、それらを管理する Realm から削除されません。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func removeLast(_ number: Int = 1)
  • 指定されたコレクション内のアイテムをリストの指定された位置に挿入します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

    public func insert<C>(contentsOf newElements: C, at i: Int) where Element == C.Element, C : Collection
  • 指定された範囲にあるオブジェクトをリストから削除します。

    警告

    このメソッドは、書込みトランザクション中にのみ呼び出されます。

    宣言

    Swift

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

Element : Decodableで利用可能

Element : ObjectBase & RealmCollectionValueで利用可能

  • projectTo は、 Listの元のObjects またはListEmbeddedObjects を にマッピングします。ProjectedCollection

    以下に例を挙げます。

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

    このコードでは、 Personの犬のリストがprojectTo経由で犬の名前のリストに優先されます。

    宣言

    Swift

    public var projectTo: CollectionElementMapper<Element> { get }