構造体

次の構造はグローバルに使用できます。

  • この構造体により、Swift の RM オブジェクトのシーケンス スタイルの列挙が可能になります。 RLMCollection.makeIterator

    詳細はこちら

    宣言

    Swift

    public struct RLMCollectionIterator : IteratorProtocol
  • この構造体により、Swift で RVMDictionary のシーケンス スタイルの列挙が可能になります。 RLMDictionary.makeIterator

    詳細はこちら

    宣言

    Swift

    public struct RLMDictionaryIterator : IteratorProtocol
  • Realmインスタンス(Realm とも呼ばれる)は、Realm データベースを表します。

    Realm はディスク上( init(path:)を参照)またはメモリ( Configurationを参照)に保存できます。

    Realm インスタンスは内部的にキャッシュされ、同等のRealmオブジェクト(たとえば、同じパスまたは識別子を使用)では限定的なオーバーヘッドが発生します。

    Realmインスタンスが確実に破棄されるようにしたい場合(たとえば、Realm を開き、いくつかのプロパティを確認した後、Realm ファイルを削除して再度開きたい場合)は、Realm を使用するコードを配置しますautoreleasepool {}内で、それへの他の強力な参照がないことを確認します。

    警告

    警告 凍結されていないRLMRealmインスタンスはスレッド制限されており、スレッドやディスパッチ キューとの間で共有することはできません。 そのような操作を試みると例外がスローされます。 Realm を操作するスレッドまたはキューごとにRLMRealmのインスタンスを取得する必要があります。 Realm は、 RLMRealmインスタンスを取得するときにキューを明示的に渡すことで、開かれるスレッドではなくディスパッチ キューに制限できます。 これが行われていない場合、キューは必ずしも同じスレッドで実行されるわけではないため、同じインスタンスを同じキューに複数のブロック ディスパッチで使用しようとすると失敗する可能性があります。
    詳細はこちら

    宣言

    Swift

    @frozen
    public struct Realm
    extension Realm: Equatable
  • LinkingObjects は、自動更新コンテナ タイプです。 プロパティ関係を通じて独自のモデル オブジェクトにリンクされた 0 個以上のオブジェクトを表します。

    LinkingObjects は、 List<Element>およびResults<Element>と同じ述語でクエリできます。

    LinkingObjects は、現在のスレッドでの書込みトランザクション中など、現在のスレッド上の Realm の現在の状態を常に反映します。 これに対する唯一の例外は、 for...in列挙型を使用している場合です。これは、列挙中にターゲット オブジェクトにリンクされなくなるように削除または変更された場合でも、列挙の開始時に存在していたリンク オブジェクトを常に列挙します。 。

    LinkingObjects は、 Objectモデルでプロパティとしてのみ使用できます。 このタイプのプロパティはletとして宣言する必要があります。また、 dynamicにすることはできません。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
    extension LinkingObjects: RealmSubscribable
    extension LinkingObjects: RealmCollection

AddableType

  • Results は、オブジェクト クエリから返される Realm の自動更新コンテナ タイプです。

    ResultsList<Element>と同じ述語でクエリできます。また、クエリを連鎖させてクエリ結果をさらにフィルタリングできます。

    Results は、現在のスレッドでの書込みトランザクション中など、現在のスレッド上の Realm の現在の状態を常に反映します。 これに対する 1 つの例外は、 for...in列挙を使用する場合です。この列では、列挙が開始されると、列挙中にフィルターによって除外されるようにオブジェクトが削除または変更された場合でも、クエリに一致したオブジェクトが常に列挙されます。

    Results は、最初にアクセスされたときに遅延評価されるため、クエリの結果が要求された場合にのみクエリを実行します。 つまり、データのソートやフィルタリングのために一時的なResultsを複数連鎖させても、中間状態を処理する不要な作業は実行されません。

    結果が評価されるか、通知ブロックが追加されると、結果は早期に最新状態に維持され、可能な場合は常にバックグラウンド スレッドで最新の状態を維持するための作業が実行されます。

    結果インスタンスは、直接インスタンス化することはできません。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct Results<Element> : Equatable where Element : RealmCollectionValue
    extension Results: RealmSubscribable
    extension Results: RealmCollection
    extension Results: Encodable where Element: Encodable
  • 型が消去されたRealmCollection

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

    詳細はこちら

    宣言

    Swift

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

サブスクリプション

  • Realm 通知をラップするサブスクライブ。

    詳細はこちら

    宣言

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct ObservationSubscription : Subscription
  • Realm AsyncOpenTask をラップするサブスクライブ。

    詳細はこちら

    宣言

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct AsyncOpenSubscription : Subscription

MapIndex

SingleMapEntry

  • マップ内に単一のキーと値のエントリを保持するためのコンテナ。 これは、チュートリアルを一般的な引数として表現できない場合に使用されます。

    詳細はこちら

    宣言

    Swift

    public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
  • Migration インスタンスは、スキーマ移行を容易にするために情報をカプセル化します。

    Realm のバージョンを更新するときに、 Migrationインスタンスはユーザー定義のMigrationBlockブロックに渡されます。 このインスタンスは、古いデータベース スキーマと新しいデータベース スキーマ、Realm 内のオブジェクトへのアクセスを提供し、移行中に Realm を変更する機能を提供します。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct Migration
  • Object変更通知で変更された特定のプロパティに関する情報。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct PropertyChange
  • このクラスは、Realm モデル オブジェクト スキーマを表します。

    Realm を使用する場合、 ObjectSchemaインスタンスでは移行を実行し、データベースのスキーマを内部検証できます。

    オブジェクト スキーマは、コア データベース内のテーブルにマップされます。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct ObjectSchema : CustomStringConvertible
    extension ObjectSchema: Equatable
  • Property インスタンスは、オブジェクト スキーマのコンテキストで Realm によって管理されるプロパティを表します。 このようなプロパティは、Realm ファイルに永続化することも、Realm 内の他のデータから計算することもできます。

    Realm を使用する場合、プロパティ インスタンスによって移行を実行し、データベースのスキーマを内部検証できます。

    プロパティ インスタンスは、コア データベースの列にマップされます。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct Property : CustomStringConvertible
    extension Property: Equatable
  • RealmCollectionインスタンスのイテレータ。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
  • RealmKeyedCollectionインスタンスのイテレータ。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct RLMMapIterator<Element> : IteratorProtocol where Element : _RealmMapValue
  • Schema インスタンスは、Realm によって管理されるモデル オブジェクト スキーマのコレクションを表します。

    Realm を使用する場合、 Schemaインスタンスでは移行を実行し、データベースのスキーマを内部検証できます。

    スキーマは、コア データベース内のテーブルのコレクションにマッピングされます。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct Schema : CustomStringConvertible
    extension Schema: Equatable
  • SortDescriptorは、 sorted(sortDescriptors:)で使用するキーパスとソート順序を保存します。 これはNSSortDescriptorと似ていますが、Realm のクエリ エンジンによって効率的に実行できる機能のサブセットのみをサポートします。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct SortDescriptor
    extension SortDescriptor: CustomStringConvertible
    extension SortDescriptor: Equatable
    extension SortDescriptor: ExpressibleByStringLiteral

StateRealmObject

  • 観察可能なオブジェクトをインスタンス化するプロパティ ラッパー型。

    プロパティ宣言にSwiftUI/View SwiftUI/AppSwiftUI/Scene@StateRealmObject属性を適用し、 doc: /Combin/ObservableObjectプロトコル:

    @StateRealmObject var model = DataModel()
    

    SwiftUI では、オブジェクトを宣言する構造体の各インスタンスに対して 1 回だけオブジェクトの新しいインスタンスが作成されます。 観察可能な Realm オブジェクトの公開プロパティが変更されると、SwiftUI はそれらのプロパティに依存するビューの部分を更新します。 管理されていない場合、プロパティはオブジェクト自体から読み取られます。それ以外の場合は、基礎となる Realm から読み取られます。 値を変更すると、ビューは非同期に更新されます。

    Text(model.title) // Updates the view any time `title` changes.
    

    状態オブジェクトは、 SwiftUI/ObservedRealmObject属性を持つプロパティに渡すことができます。

    $演算子を使用して、状態オブジェクトのプロパティの 1 つにSwiftUI/Bindingを取得します。 オブジェクトのプロパティの 1 つへの双方向接続を作成する場合は、バインディングを使用します。 たとえば、 SwiftUI/Toggleがモデルに保存されているisEnabledというブール値を制御できるようにできます。

    Toggle("Enabled", isOn: $model.isEnabled)
    

    これにより、変更されたisEnabledプロパティがmodelオブジェクトの Realm に書込まれます。

    詳細はこちら

    宣言

    Swift

    @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
    @propertyWrapper
    public struct StateRealmObject<T> : DynamicProperty where T : RealmSubscribable, T : ThreadConfined, T : Equatable

ObservedResults

  • Realm から結果を検索するプロパティ ラッパー タイプ。

    結果では、環境値EnvironmentValues/realmConfigurationによって提供される Realm 構成が使用されます。

    詳細はこちら

    宣言

    Swift

    @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
    @propertyWrapper
    public struct ObservedResults<ResultType> : DynamicProperty, BoundCollection where ResultType : RealmSwiftObject, ResultType : ObjectKeyIdentifiable

ObservedRealmObject

  • 監視可能な Realm ObjectまたはListをサブスクライブし、監視可能なオブジェクトが変更されるたびにビューを無効にするプロパティ ラッパー型。

    詳細はこちら

    宣言

    Swift

    @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
    @propertyWrapper
    public struct ObservedRealmObject<ObjectType> : DynamicProperty where ObjectType : ObservableObject, ObjectType : RealmSubscribable, ObjectType : ThreadConfined, ObjectType : Equatable
  • SyncConfigurationは、MongoDB Realm と同期するための Realm の構成パラメータを表します。

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct SyncConfiguration
  • 指定された名前と引数を持つ MongoDB Realm 関数を呼び出すためのインターフェースを提供する構造体。

    user.functions.sum([1, 2, 3, 4, 5]) { sum, error in
        guard case let .int64(value) = sum else {
            print(error?.localizedDescription)
        }
    
        assert(value == 15)
    }
    

    動的ノード名(上記の例ではsum )は、関数名に直接関連付けられています。 最初の引数は、関数に提供する引数のBSONArrayです。 2 番目の最後の引数は、関数呼び出しが完了したときに呼び出される完了ハンドラーです。 このハンドラーは非メインのグローバルDispatchQueueで実行されます。

    詳細はこちら

    宣言

    Swift

    @dynamicMemberLookup
    @frozen
    public struct Functions
  • スレッド間で渡されることを意図したオブジェクトで、スレッド定義されたオブジェクトへのスレッドセーフな参照を含みます。

    別のスレッド上のターゲット Realm のスレッドセーフな参照を解決するには、 Realm.resolve(_:)にを渡します。

    警告

    ThreadSafeReferenceオブジェクトは最大 1 回で解決される必要があります。 ThreadSafeReferenceを解決しないと、参照が再割り当てされるまで、Realm のソース バージョンが固定されます。

    注意

    すべての参照が解決または割り当てが完了するまで、ソース Realm のバージョンのデータが保持されるため、有効期間の短いThreadSafeReferenceを優先します。

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

    ThreadConfined

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

    Realm.resolve(_:)

    詳細はこちら

    宣言

    Swift

    @frozen
    public struct ThreadSafeReference<Confined> where Confined : ThreadConfined