構造体
次の構造はグローバルに使用できます。
-
この構造体により、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
-
Results
は、オブジェクト クエリから返される Realm の自動更新コンテナ タイプです。Results
はList<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
-
宣言
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
-
マップ内の要素のオフセットを保持するコンテナ タイプ。
詳細はこちら宣言
Swift
public struct MapIndex
-
マップ内に単一のキーと値のエントリを保持するためのコンテナ。 これは、チュートリアルを一般的な引数として表現できない場合に使用されます。
詳細はこちら宣言
Swift
public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
-
Migration
インスタンスは、スキーマ移行を容易にするために情報をカプセル化します。Realm のバージョンを更新するときに、
詳細はこちらMigration
インスタンスはユーザー定義のMigrationBlock
ブロックに渡されます。 このインスタンスは、古いデータベース スキーマと新しいデータベース スキーマ、Realm 内のオブジェクトへのアクセスを提供し、移行中に Realm を変更する機能を提供します。宣言
Swift
@frozen public struct Migration
-
宣言
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
-
観察可能なオブジェクトをインスタンス化するプロパティ ラッパー型。
プロパティ宣言に
SwiftUI/View
SwiftUI/App
SwiftUI/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
-
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
-
宣言
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
を優先します。詳細は、次を参照してください:
詳細は、次を参照してください:
宣言
Swift
@frozen public struct ThreadSafeReference<Confined> where Confined : ThreadConfined