유형 별칭

다음 유형 별칭은 전역적으로 사용할 수 있습니다.

Aliases

  • PropertyType Realm 모델에서 지원되는 모든 속성 유형을 설명하는 열거형입니다.

    자세한 내용은 객체 모델 및 스키마 를 참조하세요.

    기본 유형

    • Int
    • Bool
    • Float
    • Double

    Realm 객체 유형

    관계: 배열(Swift에서는 List) 및 Object 유형

    선언

    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 일 수 있습니다. ObjectEmbeddedObject 서브클래스는 선택 사항 이어야 합니다.

    개별 값 외에도 세 가지 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 와 동일하므로 ObjectList<Object> 속성은 지원되지 않습니다(EmbeddedObjectList<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])
        }
      }
    

    경고

    이 구조는 지속될 수 없으며 (GeoBox, GeoPolygonGeoCircle)와 같은 다른 지리 공간적 도형을 빌드하는 데만 사용할 수 있습니다.

    선언

    Swift

    public typealias GeoPoint = RLMGeospatialPoint
  • 지리 공간적 geoWithin쿼리에 사용할 수 있는 사각형을 나타내는 클래스입니다.

    경고

    이 클래스는 지속될 수 없으며 지리 공간적 geoWithin 쿼리 내에서만 사용할 수 있습니다.

    선언

    Swift

    public typealias GeoBox = RLMGeospatialBox
  • 지리 공간적 geoWithin쿼리에 사용할 수 있는 다각형을 나타내는 클래스입니다.

    GeoPolygonouterRing 라고 하는 외부 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의 데이터가 수정될 때 알림을 위해 실행할 차단 유형입니다.

    선언

    Swift

    public typealias NotificationBlock = (_ notification: Realm.Notification, _ realm: Realm) -> Void
  • 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