AnyRealmCollection

public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
extension AnyRealmCollection: RealmSubscribable

型が消去されたRealmCollection

RealmCollectionのインスタンスは、同じElementタイプを持つ不変の基礎コレクションに操作を転送します。

プロパティ

  • コレクションを管理する Realm、コレクションが管理されていない場合はnil

    宣言

    Swift

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

    realmを含む でinvalidate()が呼び出された場合、コレクションにアクセスできなくなります。

    宣言

    Swift

    public var isInvalidated: Bool { get }
  • コレクション内のオブジェクトの数。

    宣言

    Swift

    public var count: Int { get }
  • コレクションに含まれるオブジェクトの、人間が判読可能な説明。

    宣言

    Swift

    public var description: String { get }

Index Retrieval

  • 指定されたオブジェクトのインデックスを返します。オブジェクトがコレクションにない場合はnilを返します。

    宣言

    Swift

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

    パラメーター

    object

    オブジェクト。

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

    宣言

    Swift

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

    パラメーター

    predicate

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

フィルタリング

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

    宣言

    Swift

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

    パラメーター

    predicate

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

    戻り値

    指定された述語に一致するオブジェクトを含むResults

ソート

  • コレクション内のオブジェクトを含むResultsをソートされた状態で返します。

    オブジェクトは、指定されたキー パスの値に基づいてソートされます。 たとえば、 Studentのコレクションをageプロパティに基づいて、小さいものから古い順に並べ替えるには、 students.sorted(byKeyPath: "age", ascending: true)を呼び出します。

    警告

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

    宣言

    Swift

    public func sorted(byKeyPath keyPath: String, ascending: Bool) -> 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

    パラメーター

    sortDescriptors

    並べ替える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

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

シーケンス サポート

コレクション サポート

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

    宣言

    Swift

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

    宣言

    Swift

    public var endIndex: Int { get }

キーと値のコーディング

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

    宣言

    Swift

    public func value(forKey key: String) -> Any?

    パラメーター

    key

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

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

    宣言

    Swift

    public func value(forKeyPath keyPath: String) -> Any?

    パラメーター

    keyPath

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

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

    警告

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

    宣言

    Swift

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

    パラメーター

    value

    プロパティを設定する値。

    key

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

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<AnyRealmCollection>) -> Void)
        -> NotificationToken

    パラメーター

    block

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

    戻り値

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

凍結されたオブジェクト

  • このコレクションが固定されている場合は を返します。

    宣言

    Swift

    public var isFrozen: Bool { get }
  • このコレクションの固定(不変)スナップショットを返します。

    固定されたコピーは、このコレクションに現在含まれているデータと同じデータを含む不変のコレクションですが、含まれている Realm への書込み (write) が行われても更新されません。 ライブコレクションとは異なり、固定コレクションには任意のスレッドからアクセスできます。

    警告

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

    警告

    Realm で書込みトランザクションを実行中に固定されたコレクションを長時間保持すると、Realm ファイルのサイズが大きくなる可能性があります。 詳しくは、 Realm.Configuration.maximumNumberOfActiveVersionsを参照してください。

    宣言

    Swift

    public func freeze() -> AnyRealmCollection
  • この固定されたコレクションのライブ バージョンを返します。

    このメソッドは、同じ固定コレクションのライブ コピーへの参照を解決します。 ライブ コレクションで呼び出されると、 は自分自身を返します。

    宣言

    Swift

    public func thaw() -> AnyRealmCollection?