タイプエイリアス
次の型エイリアスはグローバルで使用できます。
-
PropertyType
は、Realm モデルでサポートされているすべてのプロパティ タイプを説明する列挙型です。詳細については、「オブジェクトモデルとスキーマ」を参照してください。
プリミティブの型
Int
Bool
Float
Double
オブジェクト タイプ
String
Data
Date
Decimal128
ObjectId
関係: 配列(Swift、
List
)とObject
型Object
Array
宣言
Swift
public typealias PropertyType = RLMPropertyType
-
Realm への変更をサブスクライブするメソッドから返されるオペレーターのトークン。
詳細は、次を参照してください:
Realm.observe(_:)
宣言
Swift
public typealias NotificationToken = RLMNotificationToken
-
Object
は、Realm モデル オブジェクトを定義するために使用されるクラスです。Realm では、
Object
をサブクラス化し、管理するプロパティを追加することでモデル クラスを定義します。 次に、Object
クラスを直接使用するのではなく、カスタム サブクラスをインスタンス化して使用します。class Dog: Object { @Persisted var name: String @Persisted var adopted: Bool @Persisted var siblings: List<Dog> }
サポートされているプロパティの型
String
Int
,Int8
,Int16
,Int32
,Int64
Float
Double
Bool
Date
Data
Decimal128
ObjectId
UUID
AnyRealmValue
- 生の型が有効なプロパティ型である任意の RawRepresentationable 列挙型。 列挙型は
PersistableEnum
に準拠しているものとして明示的にマークする必要があります。 Object
サブクラス(多対 1 の関係をモデル化するため)EmbeddedObject
サブクラス、1 対 1 の関係を所有するモデル化
上記のすべてのタイプは、
AnyRealmValue
を除き、Optional
にすることもできます。Object
とEmbeddedObject
のサブクラスは任意である必要があります。個々の 値に加えて、次の 3 つの異なるコレクション タイプがサポートされています。
List<Element>
:Array
に似た順序付き可変コレクション。MutableSet<Element>
:Set
と同様の順序付けられていない一意のコレクション。Map<String, Element>
:Dictionary
と同様の順序付けられていないキーと値のコレクション。
コレクションの要素タイプは、上記でリストしたサポートされている非コレクション プロパティ タイプのいずれかになります。 コレクション自体は 任意 ではない場合もありますが、
Object
またはEmbeddedObject
サブクラスのリストとセットは除き、コレクション内の値は である場合があります。最後に、
LinkingObjects
プロパティは、このプロパティにリンクされているオブジェクトを追跡するために使用できます。Realm によって保存されるすべてのプロパティは、
@Persisted
で明示的にマークされる必要があります。@Persisted
でマークされていないプロパティは、Realm によって完全に無視され、任意のタイプになります。クエリ
objects(_:)
インスタンス メソッドを呼び出すと、Realm から特定のタイプのすべてのオブジェクトを検索できます。関係
詳しくは、 Swift ガイドを参照してください。
宣言
Swift
public typealias Object = RealmSwiftObject
-
EmbeddedObject
は、埋め込み Realm モデル オブジェクトを定義するために使用される基本クラスです。埋め込みオブジェクトは通常のオブジェクトと同様に機能しますが、単一の親オブジェクト(それ自体が埋め込まれる場合)によって所有されます。 通常の最上位オブジェクトとは異なり、埋め込みオブジェクトを で直接作成したり、Realm に追加したりすることはできません。 代わりに、親オブジェクトの一部として、または管理されていないオブジェクトを親オブジェクトの プロパティに割り当てた場合にのみ作成できます。 埋め込みオブジェクトは、親オブジェクトが削除されるか、親が埋め込みオブジェクトを指すように変更されると、 オブジェクト プロパティを再割り当てするか、それを含むリストから埋め込みオブジェクトを削除して、自動的に削除されます。
埋め込みオブジェクトには、それらにリンクする親オブジェクトが 1 つだけあるため、既存の管理対象オブジェクトにリンクしようとすると例外がスローされます。
EmbeddedObject
でサポートされているプロパティ タイプはObject
と同じですが、埋め込みオブジェクトが最上位オブジェクトにリンクできないため、Object
とList<Object>
プロパティはサポートされていません(EmbeddedObject
とList<EmbeddedObject>
は)です。埋め込みオブジェクトにはプライマリキーまたはインデックス付きプロパティを含めることはできません。
class Owner: Object { @Persisted var name: String @Persisted var dogs: List<Dog> } class Dog: EmbeddedObject { @Persisted var name: String @Persisted var adopted: Bool @Persisted(originProperty: "dogs") var owner: LinkingObjects<Owner> }
宣言
Swift
public typealias EmbeddedObject = RealmSwiftEmbeddedObject
-
緯度と経度によって作成される点の座標を表す構造体。
- 緯度の範囲は -90 度から 90 度までです。
- 経度の範囲は -180 から 180 度までです。
GeoPoint
を作成しようとすると、この範囲外の値は nil を返します。注意
地理空間ポイントを保存するための専用のタイプはありません。代わりに、以下で説明するように、ポイントはGeoJson 型の埋め込みオブジェクトとして保存する必要があります。 地理空間クエリ(geoWithin
)は、このようなタイプのオブジェクトでのみ実行でき、それ以外の場合はスローされます。Realm での地理的ポイントの永続化は現在、アベイラビリティー型を使用して行われています。つまり、特定の形状を持つ任意のモデル クラスは、地理的場所が含まれているかのようにクエリできます。
次は必須です。
- stringポイント の値が の
@Persisted var type: String = "Point"
プロパティ。 - 経度と緯度のペアを含むリスト:
@Persisted private var coordinates: List<Double>
。
埋め込みオブジェクトを使用するアプローチをお勧めします。
public class Location: EmbeddedObject { @Persisted private var coordinates: List<Double> @Persisted private var type: String = "Point" public var latitude: Double { return coordinates[1] } public var longitude: Double { return coordinates[0] } convenience init(_ latitude: Double, _ longitude: Double) { self.init() // Longitude comes first in the coordinates array of a GeoJson document coordinates.append(objectsIn: [longitude, latitude]) } }
宣言
Swift
public typealias GeoPoint = RLMGeospatialPoint
-
地理空間
geoWithin
クエリで使用できる正方形を表すクラス。警告
このクラスは永続化することができず、地理空間geoWithin
クエリ内でのみ使用できます。宣言
Swift
public typealias GeoBox = RLMGeospatialBox
-
地理空間
geoWithin
クエリで使用できる多角形を表すクラス。GeoPolygon
は、outerRing
と呼ばれる と外側のPolygon
に準拠し、holes
と呼ばれる 0 個以上の内部Polygon
に準拠した形状を記述します。これは、外側のPolygon
内の内部穴の数が無制限を表すものです。Polygon
は少なくとも 3 つのセグメントに準拠した形状を記述します。閉じた多角形を示すには、最後のGeoPoint
と最初のが同じである必要があります(つまり、多角形を定義するには少なくとも 4 つのポイントが必要)。GeoPolygon
内の穴は完全に外側の円内になければなりませんhole
には次の制限があります。- 穴はまたがることはできません。つまり、層の境界は他の層の層と層の両方と交差することはできません。
- 穴はエッジを共有しない場合があります。つまり、穴にエッジ AB が含まれている場合、他の層にはそれが含まれていない場合があります。
- 穴は垂直方向を共有する場合がありますが、単一の穴にドライバーが 2 回表示されることはありません。
- 空の穴はありません。
ネストは 1 つのみです。
警告
このクラスは永続化することができず、地理空間
geoWithin
クエリ内でのみ使用できます。警告
高度はクエリ計算のいずれにも使用されません。
宣言
Swift
public typealias GeoPolygon = RLMGeospatialPolygon
-
この構造は、距離を表現/変換するためのヘルパーです。 で表されるような地理空間クエリで使用できます
GeoCircle
警告
この構造は永続化することができず、他の地理空間の形状を構築するためにのみ使用できます宣言
Swift
public typealias Distance = RLMDistance
-
円を表すクラス。地理空間
geoWithin
クエリで使用できます。警告
このクラスは永続化することができず、地理空間geoWithin
クエリ内でのみ使用できます。宣言
Swift
public typealias GeoCircle = RLMGeospatialCircle
-
移行中に使用されるオブジェクトクラス。
宣言
Swift
public typealias MigrationObject = DynamicObject
-
Realm 内のオブジェクトの古いバージョンと新しいバージョンの両方を提供するブロック タイプ。 オブジェクト プロパティには、サブスクリプションを使用してのみアクセスできます。
宣言
Swift
public typealias MigrationObjectEnumerateBlock = (_ oldObject: MigrationObject?, _ newObject: MigrationObject?) -> Void
パラメーター
oldObject
元の Realm のオブジェクト(読み取り専用)。
newObject
移行された Realm の オブジェクト(読み取りおよび書込み)。
-
Migration
インスタンスは、スキーマ移行を容易にするために情報をカプセル化します。Realm のバージョンを更新するときに、
Migration
インスタンスはユーザー定義のMigrationBlock
ブロックに渡されます。 このインスタンスは、古いデータベース スキーマと新しいデータベース スキーマ、Realm 内のオブジェクトへのアクセスを提供し、移行中に Realm を変更する機能を提供します。宣言
Swift
public typealias Migration = RLMMigration
-
非同期トランザクションの ID。
宣言
Swift
public typealias AsyncTransactionId = RLMAsyncTransactionId
-
Realm 内のデータが変更されたときに通知目的で実行するブロックのタイプ。
宣言
-
Logger
は、独自のカスタムログロジックを作成するために使用されます。Logger
のインスタンスを作成する独自のロガーを定義し、ログ メッセージがあるたびに呼び出されるログ関数を定義できます。let logger = Logger(level: .all) { level, message in print("Realm Log - \(level): \(message)") }
Logger.shared
を使用して、このカスタム ロガーをデフォルトのロガーとして設定します。Logger.shared = inMemoryLogger
注意
デフォルトでは、ログしきい値は.info
で、ログ文字列は Apple System Logger に出力されます。宣言
Swift
public typealias Logger = RLMLogger