クラス
次のクラスはグローバルに利用できます。
-
List
は、対多関係を定義するために使用される Realm のコンテナ タイプです。Swift の
Array
と同様に、List
は、保存する型をパラメータ化するジェネリック型です。 これは、Object
サブクラスまたは次のいずれかのタイプになります。Bool
、Int
、Int8
、Int16
、Int32
、Int64
、Float
、Double
、String
、Data
、Date
、Decimal128
、ObjectId
(およびこれらの任意バージョン)Swift のネイティブ コレクションとは異なり、
List
は参照型であり、それを管理する Realm が読み取り専用として開かれている場合にのみ不変です。
詳細はこちらResults<Element>
と同じ述語でリストをフィルタリングおよび並べ替えることができます。宣言
Swift
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
-
MutableSet
は、オブジェクトとして個別の値を持つ対多の関係を定義するために使用される Realm のコンテナ タイプです。Swift の
Set
と同様に、MutableSet
は、保存する型をパラメータ化するジェネリック型です。 これは、Object
サブクラスまたは次のいずれかのタイプになります。Bool
、Int
、Int8
、Int16
、Int32
、Int64
、Float
、Double
、String
、Data
、Date
、Decimal128
、ObjectId
(およびこれらの任意バージョン)Swift のネイティブ コレクションとは異なり、
MutableSet
は参照型であり、それを管理する Realm が読み取り専用として開かれている場合にのみ不変です。MutableSet の は、
詳細はこちらResults<Element>
と同じ述語でフィルタリングおよびソートできます。宣言
Swift
public final class MutableSet<Element> : RLMSwiftCollectionBase, RealmCollectionImpl where Element : RealmCollectionValue
extension MutableSet: ObservableObject, RealmSubscribable
extension MutableSet: Decodable where Element: Decodable
extension MutableSet: Encodable where Element: Encodable
-
マップは、サポートされている Realm タイプを保存するために使用されるキー値のストレージ コンテナです。
マップは、保存するタイプにパラメータ化されるジェネリックタイプです。 これは、オブジェクト サブクラスまたは次のいずれかのタイプになります: ブール、Int、Int8、Int16、Int32、Int64、浮動小数点数、 double 、 string 、Data、Date、Decimal128、 ObjectId (およびこれらの任意バージョン)
マップではキーとして
String
のみをサポートしています。 Realm では、辞書キー内で.
または$
文字の使用が禁止されています。Swift のネイティブ コレクションとは異なり、
Map
は参照型であり、それを管理する Realm が読み取り専用として開かれている場合にのみ不変です。
詳細はこちらResults<Value>
と同じ述語でマップをフィルタリングおよびソートすることができます。宣言
Swift
public final class Map<Key, Value> : RLMSwiftCollectionBase where Key : _MapKey, Value : RealmCollectionValue
extension Map: ObservableObject, RealmSubscribable
extension Map: Sequence
extension Map: RealmKeyedCollection
extension Map: Decodable where Key: Decodable, Value: Decodable
extension Map: Encodable where Key: Encodable, Value: Encodable
-
128 ビット IEEE 754-2008 10進数浮動小数点数。
この型は Swift に組み込まれている Decimal 型と似ていますが、ビットの割り当て方法が異なるため、表現可能な範囲が異なります。 (NS)Decimal では、最大 38 桁の長さの暗号化と -128 から 127 までの指数が保存されますが、このタイプでは最大 34 桁の暗号と -6143 から 6144 までの指数が保存されます。
詳細はこちら宣言
Swift
@objc(RealmSwiftDecimal128) public final class Decimal128 : RLMDecimal128, Decodable, @unchecked Sendable
extension Decimal128: Encodable
extension Decimal128: ExpressibleByIntegerLiteral
extension Decimal128: ExpressibleByFloatLiteral
extension Decimal128: ExpressibleByStringLiteral
extension Decimal128: Comparable
extension Decimal128: Numeric
extension Decimal128: _QueryNumeric
extension Decimal128: _RealmCollectionValueInsideOptional
extension Decimal128: MinMaxType
extension Decimal128: AddableType
extension Decimal128: SortableType
-
12 バイト(通常は)一意のObjectId 。
ObjectId は GUID または UUID に似ており、中央化された ID ジェネレーターなしでオブジェクトを一意に識別するために使用できます。 ObjectIdは、次の要素で構成されています。
- ObjectId の作成時間を UNIX エポックからの秒数で測定する 4 バイトのタイムスタンプ。
- 5 バイトのランダム値
- ランダム値に初期化された 3 バイトのカウンター。
ObjectId は高速に生成されることを目的としています。 ObjectId フィールドでソートすると、オブジェクトは通常作成順にソートされます。
詳細はこちら宣言
Swift
@objc(RealmSwiftObjectId) public final class ObjectId : RLMObjectId, Decodable, @unchecked Sendable
extension ObjectId: Encodable
extension ObjectId: Comparable
extension ObjectId: _RealmCollectionValueInsideOptional
-
RealmOptional
インスタンスは、Int
、Float
、Double
、Bool
など、Swift で@objc
として直接宣言できないタイプの任意値を表します。
詳細はこちらRealmOptional
インスタンスによって保存される基礎の値を変更するには、インスタンスのvalue
プロパティをミューテーションします。宣言
Swift
@available(*, deprecated, renamed: "RealmProperty", message: "RealmOptional<T> has been deprecated, use RealmProperty<T?> instead.") public final class RealmOptional<Value> : RLMSwiftValueStorage where Value : RealmOptionalType
extension RealmOptional: Equatable where Value: Equatable
extension RealmOptional: Codable where Value: Codable, Value: _RealmSchemaDiscoverable
-
Projection
は、元の RealmObject
またはEmbeddedObject
の軽量モデルです。 またはProjection
をビューモデルとして使用すると、ビューアテンプレートを最小限に抑えることができます。使用例:
public class Person: Object { @Persisted var firstName = "" @Persisted var lastName = "" @Persisted var address: Address? @Persisted var friends: List<Person> @Persisted var reviews: List<String> } public class Address: EmbeddedObject { @Persisted var city: String = "" @Persisted var country = "" } class PersonProjection: Projection<Person> { @Projected(\Person.firstName) var firstName @Projected(\Person.lastName.localizedUppercase) var lastNameCaps @Projected(\Person.address.city) var homeCity @Projected(\Person.friends.projectTo.firstName) var friendsFirstName: ProjectedCollection<String> }
Atlas でサポートされているプロパティの型
プロジェクションは、元の
@Persisted
プロパティをいくつかの方法で変換できます。Passthrough
-Projection
のプロパティは、元のオブジェクトと同じ名前とタイプになります。 詳しくはPersonProjection.firstName
を参照してください。Rename
- プロジェクションのプロパティは、新しい名前を持つだけで元のオブジェクトと同じタイプになります。Keypath resolution
- プロジェクションされたObject
の特定のプロパティにアクセスできます。 詳しくは、PersonProjection.lastNameCaps
とPersonProjection.homeCity
を参照してください。Collection mapping
-List
MutableSet
またはObject
の とEmbeddedObject
は、プリミティブ値のコレクションとしてプロジェクションできます。詳しくはPersonProjection.friendsFirstName
を参照してください。Exclusion
- プロジェクション モデルで定義されていない元の Realm オブジェクトのすべてのプロパティは、プロジェクションから除外されます。 これらのプロパティで変更が発生しても、Projection
の変更通知はtriggerされません。 元のObject
またはEmbeddedObject
に引き続きアクセスし、通知を直接確認できます。
注意
各@Persisted
プロパティは、同じプロジェクション クラス内で異なる方法で@Projected
になることができます。 各Object
またはEmbeddedObject
は、同じクラスまたは異なるクラスの複数のプロジェクションを一度に持つことができます。クエリ
Realm から特定のタイプのすべてのプロジェクションを検索するには、Realm の
objects(_:)
またはプロジェクションの クラスのinit(projecting:)
を呼び出します。
詳細はこちらlet projections = realm.object(PersonProjection.self) let personObject = realm.create(Person.self) let singleProjection = PersonProjection(projecting: personObject)
宣言
Swift
open class Projection<Root> : RealmCollectionValue, ProjectionObservable where Root : RLMObjectBase, Root : RealmCollectionValue, Root : ThreadConfined
extension Projection: KeypathSortable
extension Projection: ThreadConfined where Root: ThreadConfined
extension Projection: ObservableObject, RealmSubscribable where Root: ThreadConfined
-
RealmProperty
インスタンスは、サポートされている型の多形値を表します。RealmProperty
インスタンスによって保存される基礎の値を変更するには、インスタンスのvalue
プロパティをミューテーションします。注意
RealmProperty
は Realm オブジェクトで@objc dynamic
として宣言することはできません。 代わりにlet
を使用してください。宣言
Swift
public final class RealmProperty<Value> : RLMSwiftValueStorage where Value : RealmPropertyType
extension RealmProperty: Equatable where Value: Equatable
extension RealmProperty: Codable where Value: Codable
-
スレッド間で渡される可能性のあるプロパティ ラッパーの型。
@ThreadSafe
プロパティには、基礎のラップされた値へのスレッドセーフな参照が含まれます。 この参照は、ラップされた値がアクセスされる スレッドに解決されます。 プロパティがアクセスされるたびに新しいスレッドセーフ参照が作成されます。警告
このプロパティ ラッパーは、長時間オブジェクトのプロパティには使用しないでください。
@ThreadSafe
プロパティには、使用中の Realm のソース バージョンを固定できるThreadSafeReference
が含まれています。 つまり、このプロパティ ラッパーは、非同期にディスパッチされたブロックによってキャプチャされる関数引数とローカル変数に適しています。詳細は、次を参照してください:
詳細は、次を参照してください:
宣言
Swift
@propertyWrapper public final class ThreadSafe<T> where T : ThreadConfined
extension ThreadSafe: @unchecked Sendable