유형 별칭
다음 유형 별칭은 전역적으로 사용할 수 있습니다.
-
PropertyType
Realm 모델에서 지원되는 모든 속성 유형을 설명하는 열거형입니다.자세한 내용은 객체 모델 및 스키마 를 참조하세요.
기본 유형
Int
Bool
Float
Double
Realm 객체 유형
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
을(를) 서브클래스화하고 managed 속성을 추가하여 모델 클래스를 정의합니다. 그런 다음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
- 원시 유형이 법적 속성 유형인 모든 원시 표현 가능 열거형입니다. 열거형은
PersistableEnum
을 준수하는 것으로 명시적으로 표시되어야 합니다. Object
서브클래스, 다대일 관계 모델링EmbeddedObject
하위 클래스, 일대일 관계를 소유한 모델
AnyRealmValue
을(를) 제외하고 위의 모든 유형이Optional
일 수 있습니다.Object
및EmbeddedObject
서브클래스는 선택 사항 이어야 합니다.개별 값 외에도 세 가지 collection 유형이 지원됩니다.
List<Element>
:Array
와(과) 유사한 순서가 지정된 변경 가능한 collection입니다.MutableSet<Element>
:Set
와(과) 유사한 순서가 지정되지 않은 고유 collection입니다.Map<String, Element>
:Dictionary
와(과) 유사한 순서가 지정되지 않은 키-값 collection입니다.
collection의 요소 유형은 위에 나열된 지원되는 비collection 속성 유형 중 하나일 수 있습니다. collection 자체는 선택 사항이 아닐 수 있지만
Object
또는EmbeddedObject
하위 클래스의 목록과 세트를 제외하고 collection 내부의 값은 선택 사항일 수 있습니다.마지막으로
LinkingObjects
속성을 사용하여 이 속성에 연결되는 객체를 추적할 수 있습니다.Realm에 저장해야 하는 모든 속성은
@Persisted
로 명시적으로 표시해야 합니다.@Persisted
으)로 표시되지 않은 모든 속성은 Realm에서 완전히 무시되며 모든 유형이 될 수 있습니다.쿼리하기
objects(_:)
인스턴스 메서드를 호출하여 Realm에서 지정된 유형의 모든 객체를 조회할 수 있습니다.관계
자세한 내용은 Swift 가이드 를 참조하세요.
선언
Swift
public typealias Object = RealmSwiftObject
-
EmbeddedObject
임베디드 Realm 모델 객체를 정의하는 데 사용되는 기본 클래스입니다.내장된 객체는 일반 객체와 유사하게 작동하지만 단일 상위 객체(자체적으로 내장될 수 있음)가 소유합니다. 일반적인 최상위 객체와 달리 내장된 객체는 Realm에서 직접 만들거나 Realm에 추가할 수 없습니다. 대신 상위 객체의 일부로 만들거나 관리되지 않는 객체를 상위 객체의 속성에 할당하는 방식으로만 만들 수 있습니다. 내장된 객체는 부모 객체가 삭제되거나 객체 속성을 재할당하거나 포함된 목록에서 내장된 객체를 제거하여 부모가 더 이상 내장된 객체를 가리키지 않도록 부모 객체를 수정하면 내장된 객체가 자동으로 삭제됩니다.
내장된 객체는 연결되는 상위 객체가 하나만 있을 수 있으며 기존 managed 내장된 객체에 연결하려고 하면 예외가 발생합니다.
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의 지리적 점 유지는 현재 오리 타이핑을 사용하여 수행되며, 이는 특정 모양 을 가진 모든 모델 클래스를 지리적 위치가 포함된 것처럼 쿼리할 수 있음을 의미합니다.
다음 사항이 필요합니다.
- Point 값이
@Persisted var type: String = "Point"
인 String 속성입니다. - 경도/위도 쌍을 포함하는 목록:
@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
및 외부Polygon
내부의 내부 구멍 수에 제한이 없는 0개 이상의 내부Polygon
holes
를 준수하는 모양을 설명합니다.Polygon
는 최소 3개의 세그먼트를 준수하는 모양을 설명하며, 닫힌 다각형을 나타내려면 마지막GeoPoint
과 첫 번째 이 동일해야 합니다(즉, 다각형을 정의하려면 최소 4개의 점이 필요합니다).GeoPolygon
의 내부 구멍은 완전히 외부 링 내부에 있어야 합니다.hole
에는 다음과 같은 제한 사항이 있습니다.- 홀은 교차할 수 없습니다. 즉, 홀의 경계는 다른 홀의 내부와 외부 모두와 교차할 수 없습니다.
- 구멍은 가장자리를 공유할 수 없습니다.
- 구멍은 꼭지점을 공유할 수 있지만, 단일 구멍에 꼭지점이 두 번 나타날 수는 없습니다.
- 빈 구멍이 없을 수 있습니다.
중첩은 하나만 허용됩니다.
경고
이 클래스는 지속될 수 없으며 지리 공간적
geoWithin
쿼리 내에서만 사용할 수 있습니다.경고
고도는 쿼리 계산에 사용되지 않습니다.
선언
Swift
public typealias GeoPolygon = RLMGeospatialPolygon
-
이 구조체는 거리를 나타내거나 변환하는 헬퍼입니다. 다음과 같은 지리 공간적 쿼리에 사용할 수 있습니다.
GeoCircle
경고
이 구조는 지속될 수 없으며 다른 지리 공간적 형태를 만드는 데만 사용할 수 있습니다.선언
Swift
public typealias Distance = RLMDistance
-
지리 공간적
geoWithin
쿼리에 사용할 수 있는 원을 나타내는 클래스입니다.경고
이 클래스는 지속될 수 없으며 지리 공간적geoWithin
쿼리 내에서만 사용할 수 있습니다.선언
Swift
public typealias GeoCircle = RLMGeospatialCircle
-
Realm을 마이그레이션하는 데 사용되는 마이그레이션 블록의 유형입니다.
선언
Swift
public typealias MigrationBlock = @Sendable (_ migration: Migration, _ oldSchemaVersion: UInt64) -> Void
매개변수
migration
마이그레이션을 수행하는 데 사용되는
Migration
객체입니다. 마이그레이션 객체를 사용하면 마이그레이션이 필요한 기존 객체를 열거하고 변경할 수 있습니다.oldSchemaVersion
마이그레이션되는 Realm의 스키마 버전입니다.
-
마이그레이션 중에 사용되는 객체 클래스입니다.
선언
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