リスト

public final class List<Element> : RLMSwiftCollectionBase where Element : RealmCollectionValue
extension List: ObservableObject, RealmSubscribable
extension List: RealmCollection
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>と同じ述語でリストをフィルタリングおよび並べ替えることができます。

Objectサブクラスで定義されているList型のプロパティは、 letとして宣言する必要があります。また、 dynamicにすることはできません。

プロパティ

  • リストを管理する Realm、またはリストが管理されていない場合はnil

    宣言

    Swift

    public var realm: Realm? { get }
  • リストがアクセスできなくなっているかどうかを示します。

    宣言

    Swift

    public var isInvalidated: Bool { get }

初期化子

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

    宣言

    Swift

    public override init()

  • このリスト内のオブジェクトの数を返します。

    宣言

    Swift

    public var count: Int { get }

Index Retrieval

  • リスト内のオブジェクトのインデックスを返します。オブジェクトが存在しない場合はnilを返します。

    宣言

    Swift

    public func index(of object: Element) -> Int?

    パラメーター

    object

    検索対象のオブジェクト。

  • 述語に一致するリスト内の最初のオブジェクトのインデックスを返します。一致するオブジェクトがない場合はnilを返します。

    宣言

    Swift

    public func index(matching predicate: NSPredicate) -> Int?

    パラメーター

    predicate

    オブジェクトをフィルタリングする述語。

オブジェクト検索

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

    警告

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

    宣言

    Swift

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

    パラメーター

    index

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

  • リスト内の最初のオブジェクトを返します。リストが空の場合はnilを返します。

    宣言

    Swift

    public var first: Element? { get }
  • リスト内の最後のオブジェクトを返します。リストが空の場合はnilを返します。

    宣言

    Swift

    public var last: Element? { get }

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

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

  • 指定されたvaluekeyを使用して、コレクション内の各オブジェクトでsetValue(_:forKey:)を呼び出します。

    警告

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

    宣言

    Swift

    public override func setValue(_ value: Any?, forKey key: String)

    パラメーター

    value

    オブジェクト値。

    key

    各オブジェクトに値を設定するプロパティの名前。

フィルタリング

  • リスト内の指定された述語に一致するすべてのオブジェクトを含むResultsを返します。

    宣言

    Swift

    public func filter(_ predicate: NSPredicate) -> Results<Element>

    パラメーター

    predicate

    オブジェクトをフィルタリングする述語。

ソート

  • リスト内のオブジェクトを含むResultsをソートされた状態で返します。

    Objects are sorted based on the values of the given key path. たとえば、 Studentのリストをageプロパティに基づいて、小さいものから古い順に並べ替えるには、 students.sorted(byKeyPath: "age", ascending: true)を呼び出します。

    警告

    リストは、ブール値、 DateNSDate 、単一および倍精度浮動小数点、整数、および string 型のプロパティでのみソートできます。

    宣言

    Swift

    public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Element>

    パラメーター

    keyPath

    ソートするキー パス。

    ascending

    並べ替える方向。

  • リスト内のオブジェクトを含むResultsをソートされた状態で返します。

    警告

    リストは、ブール値、 DateNSDate 、単一および倍精度浮動小数点、整数、および string 型のプロパティでのみソートできます。

    詳細は、次を参照してください:

    sorted(byKeyPath:ascending:)

    宣言

    Swift

    public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Element>
        where S.Iterator.Element == SortDescriptor

集計操作

  • リスト内のすべてのオブジェクト間で指定されたプロパティの最小値(最小値)を返します。リストが空の場合はnilを返します。

    警告

    MinMaxTypeプロトコルに準拠するタイプのプロパティのみを指定できます。

    宣言

    Swift

    public func min<T>(ofProperty property: String) -> T? where T : MinMaxType

    パラメーター

    property

    最小値が必要なプロパティの名前。

  • リスト内のすべてのオブジェクト間で指定されたプロパティの最大値(最高値)を返します。リストが空の場合はnilを返します。

    警告

    MinMaxTypeプロトコルに準拠するタイプのプロパティのみを指定できます。

    宣言

    Swift

    public func max<T>(ofProperty property: String) -> T? where T : MinMaxType

    パラメーター

    property

    最大値が必要なプロパティの名前。

  • リスト内のすべてのオブジェクトの指定されたプロパティの値の合計を返します。

    警告

    AddableTypeプロトコルに準拠するタイプのプロパティのみを指定できます。

    宣言

    Swift

    public func sum<T>(ofProperty property: String) -> T where T : AddableType

    パラメーター

    property

    値を合計するプロパティの名前。

  • リスト内のすべてのオブジェクトにわたる指定されたプロパティの平均値を返します。リストが空の場合はnilを返します。

    警告

    AddableTypeプロトコルに準拠するタイプのプロパティのみを指定できます。

    宣言

    Swift

    public func average<T>(ofProperty property: String) -> T? where T : AddableType

    パラメーター

    property

    平均値を計算するプロパティの名前。

ミューテーション

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

    オブジェクトがレシーバーとは異なる 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のオブジェクトを置き換えるオブジェクトのインデックス。

notifications

  • コレクションが変更されるたびに呼び出されるブロックを登録します。

    ブロックは初期結果とは非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトのいずれかを変更する書込みトランザクションごとに再度呼び出されます。

    ブロックに渡されるchangeパラメータは、各書込みトランザクション中に追加、削除、または変更されたオブジェクトをコレクション内のインデックスの形式で報告します。 提供される変更情報の詳細と、その変更情報を使用してUITableViewをアップデートする方法の例については、 RealmCollectionChangeのドキュメントを参照してください。

    ブロックが呼び出される時点で、コレクションは完全に評価され、最新の状態になります。また、同じスレッドで書込みトランザクションを実行したり、 realm.refresh()を明示的に呼び出したりしない限り、アクセスに関するブロッキングは実行されません動作する。

    キューが指定されていない場合、通知は標準の実行ループを介して配信されるため、実行ループが他のアクティビティによってブロックされている間は通知を配信できません。 キューが指定されている場合、代わりにそのキューに通知が配信されます。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには、初期コレクションの通知を含めることができます。

    たとえば、次のコードは通知ブロックを追加した後すぐに書込みトランザクションを実行するため、最初の通知が最初に配信される可能性はありません。 その結果、最初の通知には、書込みトランザクション後の Realm の状態が反映されます。

    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
    

    アップデートをブロックに送信する場合は、返されたトークンを保持する必要があります。 更新の受信を停止するには、トークンでinvalidate()を呼び出します。

    警告

    このメソッドは、書込みトランザクション中、または Realm を含む が読み取り専用の場合に呼び出すことができません。

    宣言

    Swift

    public func observe(on queue: DispatchQueue? = nil,
                        _ block: @escaping (RealmCollectionChange<List>) -> Void) -> NotificationToken

    パラメーター

    queue

    通知を受信するシリアル ディスパッチ キュー。 nilの場合、通知は現在のスレッドに配信されます。

    block

    変更が発生するたびに呼び出されるブロック。

    戻り値

    更新を配信する限り保持する必要があるトークン。

凍結されたオブジェクト

リスト

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

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

    宣言

    Swift

    public var objectWillChange: RealmPublishers.WillChange<List> { get }
  • リスト内に保存されているオブジェクトの型。

    宣言

    Swift

    public typealias ElementType = Element

シーケンス サポート

  • Listで連続する要素を生成するRLMIteratorを返します。

    宣言

    Swift

    public func makeIterator() -> RLMIterator<Element>
  • 指定された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

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

  • 空でないコレクション内の最初の要素の位置。 空のコレクション内の endIndex と同じ。

    宣言

    Swift

    public var startIndex: Int { get }
  • コレクションの「終了を過ぎた」位置。 endIndex はサブスクリプトへの有効な引数ではなく、成功します()の 0 個以上のアプリケーションによって startIndex から常にアクセス可能です。

    宣言

    Swift

    public var endIndex: Int { get }
  • 宣言

    Swift

    public func index(after i: Int) -> Int
  • 宣言

    Swift

    public func index(before i: Int) -> Int

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 : MinMaxTypeで利用可能

  • リスト内の最小(最小)値を返します。リストが空の場合はnilを返します。

    宣言

    Swift

    public func min() -> Element?
  • リスト内の最大(最高)値を返します。リストが空の場合はnilを返します。

    宣言

    Swift

    public func max() -> Element?

Element : AddableTypeで利用可能

Element : Decodableで利用可能

Element : Encodableで利用可能