클래스

다음 클래스는 전 세계적으로 사용할 수 있습니다.

  • RLMArray Realm에서 to-many 관계를 정의하는 데 사용되는 컨테이너 유형입니다.

    NSArray 와 달리 RLMArrayobjectClassName 속성으로 지정된 단일 유형을 보유합니다. 이 Docs에서는 이를 배열의 "유형"이라고 합니다.

    RLMArray 속성을 선언할 때 유형은 포함해야 하는 객체와 동일한 이름을 사용하여 프로토콜을 준수하는 것으로 표시해야 합니다( RLM_COLLECTION_TYPE 매크로 참조). 또한 컴파일 타임 형식 안전성을 높이기 위해 Objective-C 제네릭을 사용하여 속성을 선언할 수 있습니다.

    RLM_COLLECTION_TYPE(ObjectType)
    ...
    @property RLMArray<ObjectType *><ObjectType> *arrayOfObjectTypes;
    

    RLMArray와(과) 동일한 조건자를 사용하여 RLMObjectRLMResult을(를) 쿼리할 수 있습니다.

    RLMArrays는 직접 만들 수 없습니다. RLMArrayRLMObject속성은 액세스할 때 느리게 생성되거나 Realm을 쿼리하여 얻을 수 있습니다.

    키-값 관찰

    RLMArray RLMObject 서브클래스의 RLMArray 속성에서 배열 키-값 관찰을 지원하며, RLMArray 인스턴스의 invalidated 속성은 RLMArray 가 managed RLMObject 에 연결될 때 키-값 관찰을 준수합니다(RLMArray관리되지 않는 RLMObject의 은 절대로 무효화되지 않습니다).

    RLMArray는 속성인 객체에 연결되어 있으므로 -mutableArrayValueForKey: 의 변경 가능한 collection 프록시 객체 또는 포함 객체에서 KVC 호환 변형 메서드를 사용할 필요가 없습니다. 대신 RLMArray 에서 변형 메서드를 직접 호출할 수 있습니다.

    더 보기

    선언

    Objective-C

    @interface RLMArray<RLMObjectType> : NSObject <RLMCollection>

    스위프트

    @_nonSendable(_assumed) class RLMArray<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
  • 비동기 열기를 관찰하거나 취소하는 데 사용할 수 있는 작업 객체입니다.

    동기화된 Realm이 비동기적으로 열리면 완료 콜백이 호출되기 전에 서버에서 Realm의 최신 상태가 다운로드됩니다. 이 작업 객체를 사용하여 다운로드 상태를 관찰하거나 다운로드를 취소할 수 있습니다. 동기화 세션 자체가 비동기적으로 생성되고 -[RLMRealm asyncOpenWithConfiguration:completion:]이 반환될 때 아직 존재하지 않을 수 있으므로 동기화 세션을 통한 다운로드를 관찰하려고 시도하는 대신 이 방법을 사용해야 합니다.

    더 보기

    선언

    Objective-C

    
    @interface RLMAsyncOpenTask : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMAsyncOpenTask : NSObject, @unchecked Sendable
  • RLMSortDescriptorsortedResultsUsingDescriptors: 와 함께 사용할 속성 이름과 정렬 순서를 저장합니다. NSSortDescriptor 와(과) 비슷하지만 Realm의 쿼리 엔진에서 효율적으로 실행할 수 있는 기능의 하위 집합만 지원합니다.

    RLMSortDescriptor 인스턴스는 변경되지 않습니다.

    더 보기

    선언

    Objective-C

    
    @interface RLMSortDescriptor : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMSortDescriptor : NSObject, @unchecked Sendable
  • A RLMCollectionChange 객체는 Realm 알림에서 보고하는 collection 변경 사항에 대한 정보를 캡슐화합니다.

    RLMCollectionChange RLMArrayRLMResults-addNotificationBlock 에 등록된 알림 차단으로 전달되고 알림 차단이 마지막으로 호출된 이후 collection에서 변경된 행을 보고합니다.

    변경 정보는 각 변경 유형에 대한 컬렉션의 행 인덱스 배열과 UITableView의 배치 업데이트 메서드에 직접 전달하기에 적합한 요청된 섹션의 인덱스 경로 배열, 두 가지 형식으로 제공됩니다. tv 이)라는 이름의 UITableView 을(를) 업데이트하는 전체 예입니다.

    [tv beginUpdates];
    [tv deleteRowsAtIndexPaths:[changes deletionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertRowsAtIndexPaths:[changes insertionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv reloadRowsAtIndexPaths:[changes modificationsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv endUpdates];
    

    RLMCollectionChange 의 모든 배열은 항상 오름차순으로 정렬됩니다.

    더 보기

    선언

    Objective-C

    @interface RLMCollectionChange : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMCollectionChange : NSObject
  • 128비트 IEEE 754-2008 10진수 부동 소수점 숫자입니다.

    이 유형은 Swift의 내장 Decimal 유형과 비슷하지만 비트를 다르게 할당하므로 표현 가능 범위가 다릅니다. (NS)Decimal은 최대 38자리의 유효 숫자와 -128부터 127까지의 지수를 저장하는 반면, 이 유형은 최대 34자리의 유효 숫자와 지수를 -6143부터 6144까지 저장합니다.

    더 보기

    선언

    Objective-C

    @interface RLMDecimal128 : NSObject <NSCopying>

    스위프트

    @_nonSendable(_assumed) class RLMDecimal128 : NSObject, NSCopying, @unchecked Sendable
  • RLMDictionary Realm의 container 유형으로 키-값 쌍의 dynamic collection을 나타냅니다.

    과 달리 NSDictionary RLMDictionary는 단일 키와 값 유형을 보유합니다. 이 Docs 에서는 이를 딕셔너리의 'type' 및 'keyType'이라고 합니다.

    RLMDictionary 속성을 선언할 때 객체 유형과 keyType은 포함해야 하는 객체와 동일한 이름으로 프로토콜을 준수하는 것으로 표시해야 합니다.

    RLM_COLLECTION_TYPE(ObjectType)
    ...
    @property RLMDictionary<NSString *, ObjectType *><RLMString, ObjectType> *objectTypeDictionary;
    

    RLMDictionary와(과) 동일한 조건자를 사용하여 RLMObjectRLMResult을(를) 쿼리할 수 있습니다.

    RLMDictionarys는 직접 만들 수 없습니다. RLMDictionaryRLMObject속성은 액세스할 때 느리게 생성되거나 Realm을 쿼리하여 얻을 수 있습니다.

    RLMDictionary NSString 만 키로 지원합니다. Realm은 사전 키 내에서 . 또는 $ 문자 사용을 허용하지 않습니다.

    키-값 관찰

    RLMDictionary RLMObject 하위 클래스의 RLMDictionary 속성에 대한 사전 키-값 관찰을 지원하며, RLMDictionary 인스턴스의 invalidated 속성은 RLMDictionary 가 관리되는 RLMObject 에 연결될 때 키-값 관찰을 준수합니다(RLMDictionary관리되지 않는 RLMObject의 은 무효화되지 않습니다).

    더 보기

    선언

    Objective-C

    @interface RLMDictionary<RLMKeyType, RLMObjectType> : NSObject <RLMCollection>

    스위프트

    @_nonSendable(_assumed) class RLMDictionary<RLMKeyType, RLMObjectType> : NSObject, RLMCollection where RLMKeyType : AnyObject, RLMObjectType : AnyObject
  • RLMDictionaryChange 객체는 Realm 알림에서 보고한 사전의 변경 사항에 대한 정보를 캡슐화합니다.

    RLMDictionaryChange RLMDictionary -addNotificationBlock 에 등록된 알림 블록으로 전달되고, 알림 차단이 마지막으로 호출된 이후에 딕셔너리에서 어떤 키가 변경되었는지 보고합니다.

    더 보기

    선언

    Objective-C

    @interface RLMDictionaryChange : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMDictionaryChange : NSObject
  • RLMEmbeddedObject Realm 모델 객체를 정의하는 데 사용되는 기본 클래스입니다.

    내장된 객체는 일반 객체와 유사하게 작동하지만 단일 상위 객체(자체적으로 내장될 수 있음)가 소유합니다. 일반적인 최상위 객체와 달리 내장된 객체는 Realm에서 직접 만들거나 Realm에 추가할 수 없습니다. 대신 상위 객체의 일부로 만들거나 관리되지 않는 객체를 상위 객체의 속성에 할당하는 방식으로만 만들 수 있습니다. 상위 객체가 삭제되거나 RLMObject 속성을 재할당하거나 포함된 배열에서 포함된 객체를 제거하여 상위 객체가 더 이상 포함된 객체를 가리키지 않도록 수정될 때 포함된 객체가 자동으로 삭제됩니다.

    내장된 객체는 연결되는 상위 객체가 하나만 있을 수 있으며 기존 managed 내장된 객체에 연결하려고 하면 예외가 발생합니다.

    RLMEmbeddedObject 에서 지원되는 속성 유형은 내장된 객체가 최상위 객체에 연결할 수 없다는 점을 제외하면 RLMObject 와 동일하므로 RLMObjectRLMArray<RLMObject> 속성은 지원되지 않습니다(RLMEmbeddedObjectRLMArray<RLMEmbeddedObject> ) 입니다.

    내장된 객체는 기본 키나 인덱싱된 속성을 가질 수 없습니다.

    더 보기

    선언

    Objective-C

    @interface RLMEmbeddedObject : RLMObjectBase <RLMThreadConfined>

    스위프트

    @_nonSendable(_assumed) class RLMEmbeddedObject : RLMObjectBase, RLMThreadConfined
  • 위도와 경도 값으로 형성되는 점의 좌표를 나타내는 클래스입니다.

    • 위도의 범위는 -90도에서 90도 사이입니다.
    • 경도 범위는 -180도에서 180도 사이입니다.
    • 고도는 음수 값을 가질 수 없습니다.

    이 범위를 벗어나는 값은 RLMGeospatialPoint 을 만들려고 할 때 nil을 반환합니다.

    참고

    지리 공간적 점을 저장하는 전용 유형은 없으며, 대신 아래 설명된 대로 점을 GeoJson 모양의 내장된 객체로 저장해야 합니다. 지리 공간적 쿼리(geoWithin)는 이러한 유형의 객체에서만 실행할 수 있으며 그렇지 않으면 발생합니다.

    Realm의 지리적 점 유지는 현재 오리 타이핑을 사용하여 수행되며, 이는 특정 모양 을 가진 모든 모델 클래스를 지리적 위치가 포함된 것처럼 쿼리할 수 있음을 의미합니다. 권장되는 접근 방식은 내장된 객체를 사용하는 것입니다.

    경고

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

    경고

    고도는 쿼리 계산에 사용되지 않습니다.

    더 보기

    선언

    Objective-C

    @interface RLMGeospatialPoint : NSObject

    스위프트

    class RLMGeospatialPoint : NSObject, @unchecked Sendable
  • 지리 공간적 geoWithin쿼리에 사용할 수 있는 사각형을 나타내는 클래스입니다.

    경고

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

    선언

    Objective-C

    @interface RLMGeospatialBox : NSObject <RLMGeospatial>

    스위프트

    class RLMGeospatialBox : NSObject, RLMGeospatial, @unchecked Sendable
  • 지리 공간적 geoWithin쿼리에 사용할 수 있는 다각형을 나타내는 클래스입니다.

    RLMGeospatialPolygonouterRing 라고 하는 외부 Polygon 및 외부 Polygon 내부의 내부 구멍 수에 제한이 없는 0개 이상의 내부 Polygon holes 를 준수하는 모양을 설명합니다. Polygon 는 최소 3개의 세그먼트를 준수하는 모양을 설명하며, 닫힌 다각형을 나타내려면 마지막 RLMGeospatialPoint 과 첫 번째 이 동일해야 합니다(즉, 다각형을 정의하려면 최소 4개의 점이 필요합니다). RLMGeospatialPolygon 의 내부 구멍은 완전히 외부 링 내부에 있어야 합니다.

    hole 에는 다음과 같은 제한 사항이 있습니다.

    • 홀은 교차할 수 없습니다. 즉, 홀의 경계는 다른 홀의 내부와 외부 모두와 교차할 수 없습니다.
    • 구멍은 가장자리를 공유할 수 없습니다.
    • 구멍은 꼭지점을 공유할 수 있지만, 단일 구멍에 꼭지점이 두 번 나타날 수는 없습니다.
    • 빈 구멍이 없을 수 있습니다.
    • 중첩은 하나만 허용됩니다.

    경고

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

    더 보기

    선언

    Objective-C

    @interface RLMGeospatialPolygon : NSObject <RLMGeospatial>

    스위프트

    class RLMGeospatialPolygon : NSObject, RLMGeospatial, @unchecked Sendable
  • 이 구조체는 거리를 나타내거나 변환하는 헬퍼입니다. 다음과 같은 지리 공간적 쿼리에 사용할 수 있습니다. RLMGeospatialCircle

    경고

    이 구조는 지속될 수 없으며 다른 지리 공간적 형태를 만드는 데만 사용할 수 있습니다.
    더 보기

    선언

    Objective-C

    @interface RLMDistance : NSObject

    스위프트

    class RLMDistance : NSObject, @unchecked Sendable
  • 지리 공간적 geoWithin쿼리에 사용할 수 있는 원을 나타내는 클래스입니다.

    경고

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

    선언

    Objective-C

    @interface RLMGeospatialCircle : NSObject <RLMGeospatial>

    스위프트

    class RLMGeospatialCircle : NSObject, RLMGeospatial, @unchecked Sendable
  • RLMLogger 사용자 지정 로깅 로직을 만드는 데 사용됩니다.

    RLMLogger 의 인스턴스를 생성하는 자체 로거를 정의하고 로그 메시지가 있을 때마다 호출되는 로그 함수를 정의할 수 있습니다. setDefaultLogger 을(를) 사용하여 이 사용자 지정 로거를 기본 로거로 설정합니다.

    RLMLogger.defaultLogger = [[RLMLogger alloc] initWithLevel:RLMLogLevelDebug
                                               logFunction:^(RLMLogLevel level, NSString * message) {
        NSLog(@"Realm Log - %lu, %@", (unsigned long)level, message);
    }];
    

    참고

    기본적으로 로그 임계값 수준은 RLMLogLevelInfo 이며, 로깅 문자열은 Apple System Logger로 출력됩니다.
    더 보기

    선언

    Objective-C

    @interface RLMLogger : NSObject

    스위프트

    class RLMLogger : NSObject
  • RLMMigration 인스턴스는 스키마 마이그레이션을 용이하게 하기 위한 정보를 캡슐화합니다.

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

    더 보기

    선언

    Objective-C

    @interface RLMMigration : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMMigration : NSObject
  • RLMObject Realms에 저장된 데이터를 나타내는 모델 객체의 기본 클래스입니다.

    RLMObject 을(를) 서브클래스화하고 managed 속성을 추가하여 모델 클래스를 정의합니다. 그런 다음 RLMObject 클래스를 직접 사용하는 대신 사용자 지정 하위 클래스를 인스턴스화하여 사용합니다.

    // Dog.h
    @interface Dog : RLMObject
    @property NSString *name;
    @property BOOL      adopted;
    @end
    
    // Dog.m
    @implementation Dog
    @end //none needed
    

    지원되는 속성 유형

    • NSString
    • NSInteger, int, long, floatdouble
    • BOOL 또는 bool
    • NSDate
    • NSData
    • NSNumber<X>여기서 XRLMInt, RLMFloat, RLMDouble 또는 RLMBool 중 하나이며, 선택적 숫자 속성의 경우
    • RLMObject 서브클래스를 사용하여 다대일 관계를 모델링합니다.
    • RLMArray<X>, 여기서 XRLMObject 서브클래스로, 다대다 관계를 모델링합니다.

    쿼리하기

    클래스 메서드 allObjects, objectsWhere:objectsWithPredicate: 를 통해 직접 쿼리를 시작할 수 있습니다. 이 메서드를 사용하면 기본 Realm에서 해당 클래스의 인스턴스에 대한 사용자 지정 하위 클래스를 쉽게 쿼리할 수 있습니다.

    기본 Realm이 아닌 다른 Realm에서 검색하려면 allObjectsInRealm:, objectsInRealm:where:objectsInRealm:withPredicate: 클래스 메서드를 사용하세요.

    ~를 참조하세요.

    RLMRealm

    관계

    자세한 내용은 Realm Swift 문서 를 참조하세요.

    키-값 관찰

    모든 RLMObject 속성(서브클래스에서 만든 속성 포함)은 realmobjectSchema 를 제외하고 키-값 관찰을 준수합니다.

    Realm 객체를 관찰할 때는 다음 팁을 염두에 두세요.

    1. NSMutableArray 속성과RLMArray 달리 속성은 에서 반환된 프록시 객체를 -mutableArrayValueForKey: 사용하거나 포함 클래스에서 KVC 변형 메서드를 정의할 필요가 없습니다. RLMArray 에서 직접 메서드를 호출하기만 하면 됩니다. 모든 변경 사항은 포함 객체에서 자동으로 관찰됩니다.
    2. 관리되지 않는 RLMObject 인스턴스는 관찰된 속성이 있는 동안 Realm에 추가할 수 없습니다.
    3. -observeValueForKeyPath:ofObject:change:context: 내에서 managed RLMObject을 수정하는 것은 권장되지 않습니다. 속성은 Realm이 쓰기 트랜잭션(write transaction) 중이 아닌 경우(예: 다른 스레드에서 변경이 적용된 후 -[RLMRealm refresh] 가 호출된 경우) 및 변경 사항이 적용되기 전에 알림이 전송된 경우( NSKeyValueObservingOptionPrior 가 사용된 경우)에도 변경될 수 있습니다. 쓰기 트랜잭션(write transaction)을 시작할 수 없는 경우에 전송될 수 있습니다.
    더 보기

    선언

    Objective-C

    @interface RLMObject : RLMObjectBase <RLMThreadConfined>

    스위프트

    @_nonSendable(_assumed) class RLMObject : RLMObjectBase, RLMThreadConfined
  • RLMObject 변경 알림에서 변경된 특정 속성에 대한 정보입니다.

    더 보기

    선언

    Objective-C

    @interface RLMPropertyChange : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMPropertyChange : NSObject
  • 12바이트(대부분)의 고유 ObjectId입니다.

    ObjectId는 GUID 또는 UUID와 유사하며, 중앙 집중식 ID 생성기 없이도 객체를 고유하게 식별하는 데 사용할 수 있습니다. ObjectID는 다음으로 구성됩니다.

    1. 유닉스 시간 이후 ObjectId의 생성 시간을 초 단위로 측정하는 4바이트 타임스탬프입니다.
    2. 5바이트 임의 값
    3. 임의의 값으로 초기화된 3바이트 카운터입니다.

    ObjectId는 빠르게 생성하기 위한 것입니다. ObjectId 필드를 기준으로 정렬하면 일반적으로 객체가 생성 순서대로 정렬됩니다.

    더 보기

    선언

    Objective-C

    @interface RLMObjectId : NSObject <NSCopying>

    스위프트

    @_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable
  • 이 클래스는 Realm 모델 객체 스키마를 나타냅니다.

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

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

    더 보기

    선언

    Objective-C

    
    @interface RLMObjectSchema : NSObject <NSCopying>

    스위프트

    @_nonSendable(_assumed) class RLMObjectSchema : NSObject, NSCopying, @unchecked Sendable
  • RLMProperty 인스턴스는 객체 스키마의 컨텍스트에서 Realm이 managed하는 속성을 나타냅니다. 이러한 속성은 Realm 파일에 유지되거나 Realm의 다른 데이터에서 계산될 수 있습니다.

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

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

    더 보기

    선언

    Objective-C

    
    @interface RLMProperty : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMProperty : NSObject, @unchecked Sendable
  • RLMPropertyDescriptor 인스턴스는 지정된 클래스의 특정 속성을 나타냅니다.

    더 보기

    선언

    Objective-C

    
    @interface RLMPropertyDescriptor : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMPropertyDescriptor : NSObject, @unchecked Sendable
  • RLMRealm 인스턴스('Realm'이라고도 함)는 Realm 데이터베이스를 나타냅니다.

    Realm은 디스크( +[RLMRealm realmWithURL:] 참조) 또는 메모리( RLMRealmConfiguration 참조)에 저장할 수 있습니다.

    RLMRealm 인스턴스는 내부 캐시되며, 이벤트 루프의 단일 반복 내에서 단일 스레드에서 동일한 경로나 식별자를 사용하여 동일한 RLMRealm 객체를 여러 번 구성하면 일반적으로 동일한 RLMRealm 객체가 반환됩니다.

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

    경고

    동결되지 않은 RLMRealm 인스턴스는 스레드에 한정되어 있으며 스레드 또는 디스패치 대기열 전체에서 공유할 수 없습니다. 이 작업을 시도하면 예외가 발생합니다. Realm과 상호 작용하려는 각 스레드에서 이 메서드를 호출해야 합니다. 디스패치 대기열의 경우, 대기열이 동일한 스레드에서 모든 블록을 실행한다고 보장되지 않으므로, 이는 디스패치된 각 블록에서 이를 호출해야 함을 의미합니다.
    더 보기

    선언

    Objective-C

    @interface RLMRealm : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMRealm : NSObject
  • Realm의 변경 사항을 구독하는 메서드에서 반환되는 토큰입니다.

    Realm의 구독 변경은 RLMNotificationToken 인스턴스를 반환하며, 이 인스턴스는 변경 사항의 구독을 취소하는 데 사용할 수 있습니다. 알림을 계속 받으려면 토큰에 대한 강력한 참조를 저장해야 합니다. 중지하려면 -invalidate 메서드를 호출합니다. 토큰 할당이 취소되면 알림도 중지됩니다.

    더 보기

    선언

    Objective-C

    @interface RLMNotificationToken : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMNotificationToken : NSObject, @unchecked Sendable
  • RLMRealmConfiguration 인스턴스는 Realm의 인스턴스를 만드는 데 사용되는 다양한 옵션을 설명합니다.

    RLMRealmConfiguration 인스턴스는 일반 NSObject에 불과합니다. RLMRealmRLMObject와 달리 이를 변경하지 않는 한 스레드 간에 자유롭게 공유할 수 있습니다.

    objectClasses 속성을 설정하여 클래스 하위 집합에 대한 구성 객체를 만드는 데는 많은 비용이 소요될 수 있습니다. 이 때문에 일반적으로 Realm을 열 때마다 새 객체를 만드는 대신 각 개별 구성에 대해 단일 구성 객체를 캐시하고 재사용하는 것이 좋습니다.

    더 보기

    선언

    Objective-C

    @interface RLMRealmConfiguration : NSObject <NSCopying>

    스위프트

    @_nonSendable(_assumed) class RLMRealmConfiguration : NSObject, NSCopying
  • RLMResults 객체 쿼리에서 반환되는 Realm의 자동 업데이트 container 유형입니다. 쿼리의 결과를 객체의 collection 형태로 나타냅니다.

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

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

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

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

    RLMResults 직접 인스턴스화할 수 없습니다.

    더 보기

    선언

    Objective-C

    @interface RLMResults<RLMObjectType>
        : NSObject <RLMCollection, NSFastEnumeration>

    스위프트

    @_nonSendable(_assumed) class RLMResults<RLMObjectType> : NSObject, RLMCollection, NSFastEnumeration where RLMObjectType : AnyObject
  • RLMLinkingObjects 자동 업데이트 컨테이너 유형입니다. 상위 객체에 연결되는 객체 컬렉션을 나타냅니다.

    자세한 내용은 문서 의 '역관계' 섹션을 참조하세요.

    선언

    Objective-C

    @interface RLMLinkingObjects<RLMObjectType : RLMObject *> : RLMResults

    스위프트

    @_nonSendable(_assumed) class RLMLinkingObjects<RLMObjectType> : RLMResults<AnyObject> where RLMObjectType : RLMObject
  • RLMSchema 인스턴스는 Realm에서 관리하는 모델 객체 스키마 컬렉션을 나타냅니다.

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

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

    더 보기

    선언

    Objective-C

    @interface RLMSchema : NSObject <NSCopying>

    스위프트

    @_nonSendable(_assumed) class RLMSchema : NSObject, NSCopying, @unchecked Sendable
  • RLMSectionedResultsChange 객체는 Realm 알림에서 보고하는 섹션화된 결과의 변경 사항에 대한 정보를 캡슐화합니다.

    RLMSectionedResultsChange RLMSectionedResults-addNotificationBlock 에 등록된 알림 차단으로 전달되고, 알림 차단이 마지막으로 호출된 이후 컬렉션의 어떤 섹션과 행이 변경되었는지 보고합니다.

    tv 이)라는 이름의 UITableView 을(를) 업데이트하는 전체 예입니다.

    [tv beginUpdates];
    [tv deleteRowsAtIndexPaths:changes.deletions withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertRowsAtIndexPaths:changes.insertions withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv reloadRowsAtIndexPaths:changes.modifications withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertSections:changes.sectionsToInsert withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv deleteSections:changes.sectionsToRemove withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv endUpdates];
    

    RLMSectionedResultsChange 의 모든 배열은 항상 오름차순으로 정렬됩니다.

    더 보기

    선언

    Objective-C

    @interface RLMSectionedResultsChange : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMSectionedResultsChange : NSObject
  • RLM섹션에는 지정된 섹션 키에 속한 객체가 포함되어 있습니다.

    더 보기

    선언

    Objective-C

    @interface RLMSection<RLMKeyType : id <RLMValue>, RLMObjectType>
        : NSObject <RLMSectionedResult>

    스위프트

    @_nonSendable(_assumed) class RLMSection<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : AnyObject
  • 섹션 키로 결정된 섹션에 요소를 보유하는 느리게 평가되는 collection입니다.

    더 보기

    선언

    Objective-C

    @interface RLMSectionedResults<RLMKeyType : id <RLMValue>,
                                   RLMObjectType : id <RLMValue>>
        : NSObject <RLMSectionedResult>

    스위프트

    @_nonSendable(_assumed) class RLMSectionedResults<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : RLMValue
  • 고유 객체를 저장하는 데 사용되는 collection 데이터 유형입니다.

    참고

    RLMSet 기본 및 RLMObject 유형 저장을 지원합니다. RLMSet 은(는) 임베디드 Realm 객체 저장을 지원하지 않습니다.
    더 보기

    선언

    Objective-C

    @interface RLMSet<RLMObjectType> : NSObject <RLMCollection>

    스위프트

    @_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
  • 스레드에 한정된 객체에 대한 스레드 세이프 참고를 포함하는 스레드 간에 전달되기 위한 객체입니다.

    다른 스레드에서 대상 Realm의 스레드 세이프 참고를 확인하려면 -[RLMRealm resolveThreadSafeReference:] 으로 전달합니다.

    경고

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

    참고

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

    ~를 참조하세요.

    RLMThreadConfined

    더 보기

    선언

    Objective-C

    
    @interface RLMThreadSafeReference<__covariant Confined : id <RLMThreadConfined>>
        : NSObject

    스위프트

    @_nonSendable(_assumed) class RLMThreadSafeReference<Confined> : NSObject, @unchecked Sendable where Confined : RLMThreadConfined