구조

다음 구조는 전 세계적으로 사용할 수 있습니다.

  • 이 구조체는 다음을 통해 Swift에서 RLMObject에 대한 시퀀스 스타일 열거를 활성화합니다. RLMCollection.makeIterator

    더 보기

    선언

    스위프트

    public struct RLMCollectionIterator : IteratorProtocol
  • 이 구조체는 다음을 통해 Swift에서 RLMDictionary에 대한 시퀀스 스타일 열거를 활성화합니다. RLMDictionary.makeIterator

    더 보기

    선언

    스위프트

    public struct RLMDictionaryIterator : IteratorProtocol
  • Realm 인스턴스('Realm'이라고도 함)는 Realm 데이터베이스를 나타냅니다.

    Realm은 디스크( init(path:) 참조) 또는 메모리( Configuration 참조)에 저장할 수 있습니다.

    Realm 즉, 동일한 경로나 식별자를 사용하여 동등한 Realm 객체를 구성하면 오버헤드가 제한적으로 발생합니다.

    특히 Realm 인스턴스가 제거되었는지 확인하려면(예를 들어, Realm을 열고 일부 속성을 확인한 다음 Realm 파일을 삭제했다가 다시 열려면 Realm을 사용하는 코드를 배치합니다. autoreleasepool {} 내에 넣고 이에 대한 다른 강력한 참조가 없는지 확인합니다.

    경고

    경고 고정되지 않은 RLMRealm 인스턴스는 스레드에 한정되어 있으며 스레드 또는 디스패치 대기열 간에 공유할 수 없습니다. 이 작업을 수행하려고 하면 예외가 발생합니다. Realm과 상호 작용하려는 각 스레드 또는 대기열에서 RLMRealm 인스턴스를 가져와야 합니다. Realm은 RLMRealm 인스턴스를 가져올 때 대기열을 명시적으로 전달하여 열리는 스레드가 아닌 디스패치 대기열로 제한할 수 있습니다. 이 작업을 수행하지 않으면 대기열이 항상 동일한 스레드에서 실행되지 않으므로 여러 블록에서 동일한 인스턴스를 동일한 대기열에 디스패치하여 사용하려고 하면 실패할 수 있습니다.
    더 보기

    선언

    스위프트

    @frozen
    public struct Realm
    extension Realm: Equatable
  • LinkingObjects 자동 업데이트 container 유형입니다. 속성 관계를 통해 소유 모델 객체에 연결된 0개 이상의 객체를 나타냅니다.

    LinkingObjects List<Element>Results<Element> 와 동일한 조건자를 사용하여 쿼리할 수 있습니다.

    LinkingObjects 현재 스레드에서 쓰기 트랜잭션(write transaction)을 포함하여 항상 현재 스레드에서 Realm의 현재 상태를 반영합니다. 한 가지 예외는 for...in 열거형을 사용하는 경우로, 이는 열거형이 시작될 때 존재했던 연결 객체 중 일부가 삭제되거나 수정되어 열거형 중에 대상 객체에 더 이상 연결되지 않는 경우에도 항상 열거형을 열거합니다. .

    LinkingObjects Object 모델에서만 속성으로 사용할 수 있습니다. 이 유형의 속성은 let (으)로 선언해야 하며 dynamic 일 수 없습니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
    extension LinkingObjects: RealmSubscribable
    extension LinkingObjects: RealmCollection

AddableType

  • Results 객체 쿼리에서 반환되는 Realm의 자동 업데이트 container 유형입니다.

    Results List<Element> 와(과) 동일한 조건자를 사용하여 쿼리할 수 있으며, 쿼리를 연결하여 쿼리 결과를 추가로 필터링할 수 있습니다.

    Results 현재 스레드에서 쓰기 트랜잭션(write transaction)을 포함하여 항상 현재 스레드에서 Realm의 현재 상태를 반영합니다. 한 가지 예외는 for...in 열거를 사용하는 경우이며, 이는 열거 중에 필터에 의해 제외되도록 일부 객체가 삭제되거나 수정되더라도 열거가 시작될 때 쿼리와 일치하는 객체를 항상 열거합니다.

    Results 처음 액세스할 때 느리게 평가됩니다. 쿼리 결과가 요청될 때만 쿼리를 실행합니다. 즉, 여러 개의 임시 Results 를 연결하여 데이터를 정렬하고 필터링해도 중간 상태를 처리하는 불필요한 작업을 수행하지 않습니다.

    결과가 평가되거나 알림 차단이 추가되면 결과가 최신 상태로 유지되며 가능하면 백그라운드 스레드에서 최신 상태로 유지하기 위한 작업이 수행됩니다.

    결과 인스턴스는 직접 인스턴스화할 수 없습니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct Results<Element> : Equatable where Element : RealmCollectionValue
    extension Results: RealmSubscribable
    extension Results: RealmCollection
    extension Results: Encodable where Element: Encodable
  • 유형이 지워진 RealmCollection 입니다.

    RealmCollection 의 인스턴스는 동일한 Element 유형을 가진 불투명한 기본 컬렉션으로 작업을 전달합니다.

    더 보기

    선언

    스위프트

    public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
    extension AnyRealmCollection: RealmSubscribable

구독

  • Realm 알림을 래핑하는 구독입니다.

    더 보기

    선언

    스위프트

    @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를 래핑하는 구독입니다.

    더 보기

    선언

    스위프트

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct AsyncOpenSubscription : Subscription

MapIndex

SingleMapEntry

  • 지도에 단일 키-값 항목을 보관하기 위한 컨테이너입니다. 이는 튜플이 일반적인 인수로 표현될 수 없는 경우에 사용됩니다.

    더 보기

    선언

    스위프트

    public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
  • Migration 인스턴스는 스키마 마이그레이션을 용이하게 하기 위한 정보를 캡슐화합니다.

    Realm 버전을 업데이트할 때 인스턴스 Migration 가 사용자 정의 MigrationBlock 블록으로 전달됩니다. 이 인스턴스는 이전 및 새 데이터베이스 스키마, Realm의 객체에 대한 액세스를 제공하고 마이그레이션 중에 Realm을 수정하는 기능을 제공합니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct Migration
  • Object 변경 알림에서 변경된 특정 속성에 대한 정보입니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct PropertyChange
  • 이 클래스는 Realm 모델 객체 스키마를 나타냅니다.

    Realm을 사용할 때 ObjectSchema 인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.

    객체 스키마는 코어 데이터베이스의 테이블에 매핑됩니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct ObjectSchema : CustomStringConvertible
    extension ObjectSchema: Equatable
  • Property 인스턴스는 객체 스키마의 컨텍스트에서 Realm이 managed하는 속성을 나타냅니다. 이러한 속성은 Realm 파일에 유지되거나 Realm의 다른 데이터에서 계산될 수 있습니다.

    Realm을 사용하는 경우 속성 인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.

    속성 인스턴스는 코어 데이터베이스의 열에 매핑됩니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct Property : CustomStringConvertible
    extension Property: Equatable
  • RealmCollection 인스턴스의 반복자(iterator)입니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
  • RealmKeyedCollection 인스턴스의 반복자(iterator)입니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct RLMMapIterator<Element> : IteratorProtocol where Element : _RealmMapValue
  • Schema 인스턴스는 Realm에서 관리하는 모델 객체 스키마 컬렉션을 나타냅니다.

    Realm을 사용할 때 Schema 인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.

    스키마는 코어 데이터베이스의 collection 테이블에 매핑됩니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct Schema : CustomStringConvertible
    extension Schema: Equatable
  • SortDescriptorsorted(sortDescriptors:) 와 함께 사용할 키 경로와 정렬 순서를 저장합니다. NSSortDescriptor 와(과) 비슷하지만 Realm의 쿼리 엔진에서 효율적으로 실행할 수 있는 기능의 하위 집합만 지원합니다.

    더 보기

    선언

    스위프트

    @frozen
    public struct SortDescriptor
    extension SortDescriptor: CustomStringConvertible
    extension SortDescriptor: Equatable
    extension SortDescriptor: ExpressibleByStringLiteral

StateRealmObject

  • 관찰 가능 객체를 인스턴스화하는 속성 래퍼 유형입니다.

    @StateRealmObject 속성을 속성 선언에 적용하고 doc://com.apple.documentation/documentation 을 준수하는 초기 값을 제공하여 SwiftUI/View, SwiftUI/App 또는 SwiftUI/Scene 에서 상태 Realm 객체를 생성합니다. /Combine/ObservableObject 프로토콜:

    @StateRealmObject var model = DataModel()
    

    SwiftUI는 객체를 선언하는 구조체의 각 인스턴스에 대해 객체의 새 인스턴스를 한 번만 생성합니다. 관찰 가능한 영역 객체의 게시된 속성이 변경되면 SwiftUI는 해당 속성에 의존하는 모든 뷰의 부분을 업데이트합니다. 관리되지 않는 경우 속성을 객체 자체에서 읽고, 그렇지 않으면 기본 Realm에서 읽습니다. 값을 변경하면 뷰가 비동기적으로 업데이트됩니다.

    Text(model.title) // Updates the view any time `title` changes.
    

    상태 객체를 SwiftUI/ObservedRealmObject 속성이 있는 속성에 전달할 수 있습니다.

    $ 연산자를 사용하여 상태 객체의 속성 중 하나에 대한 SwiftUI/Binding 을(를) 가져옵니다. 객체의 속성 중 하나에 대한 양방향 연결을 생성하려는 경우 바인딩을 사용합니다. 예를 들어 SwiftUI/Toggle 가 모델에 저장된 isEnabled 라는 부울 값을 제어하도록 할 수 있습니다.

    Toggle("Enabled", isOn: $model.isEnabled)
    

    이렇게 하면 수정된 isEnabled 속성이 model 객체의 Realm에 기록됩니다.

    더 보기

    선언

    스위프트

    @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

ObservedResults

  • Realm에서 결과를 검색하는 속성 래퍼 유형입니다.

    결과는 환경 값 EnvironmentValues/realmConfiguration 에서 제공하는 영역 구성을 사용합니다.

    더 보기

    선언

    스위프트

    @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

ObservedRealmObject

  • 관찰 가능 Realm Object 또는 List 을(를) 구독하고 관찰 가능 객체가 변경될 때마다 뷰를 무효화하는 속성 래퍼 유형입니다.

    더 보기

    선언

    스위프트

    @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의 구성 매개변수를 나타냅니다.

    더 보기

    선언

    스위프트

    @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 입니다. 두 번째이자 마지막 인수는 함수 호출이 완료될 때 호출하는 완료 핸들러입니다. 이 핸들러는 메인이 아닌 글로벌 DispatchQueue 에서 실행됩니다.

    더 보기

    선언

    스위프트

    @dynamicMemberLookup
    @frozen
    public struct Functions
  • 스레드에 한정된 객체에 대한 스레드 세이프 참고를 포함하는 스레드 간에 전달되기 위한 객체입니다.

    다른 스레드에서 대상 Realm의 스레드 세이프 참고를 확인하려면 Realm.resolve(_:) 으로 전달합니다.

    경고

    ThreadSafeReference 객체는 최대 한 번만 해석되어야 합니다. ThreadSafeReference 확인에 실패하면 참고 할당이 해제될 때까지 Realm의 소스 버전이 고정됩니다.

    참고

    소스 Realm의 버전에 대한 데이터는 모든 참고가 확인되거나 할당 해제될 때까지 유지되므로 수명이 짧은 ThreadSafeReference을(를) 선호합니다.

    ~를 참조하세요.

    ThreadConfined

    ~를 참조하세요.

    Realm.resolve(_:)

    더 보기

    선언

    스위프트

    @frozen
    public struct ThreadSafeReference<Confined> where Confined : ThreadConfined