클래스
다음 클래스는 전 세계적으로 사용할 수 있습니다.
-
RLMArray
Realm에서 to-many 관계를 정의하는 데 사용되는 컨테이너 유형입니다.NSArray
와 달리RLMArray
는objectClassName
속성으로 지정된 단일 유형을 보유합니다. 이 Docs에서는 이를 배열의 "유형"이라고 합니다.RLMArray
속성을 선언할 때 유형은 포함해야 하는 객체와 동일한 이름을 사용하여 프로토콜을 준수하는 것으로 표시해야 합니다(RLM_COLLECTION_TYPE
매크로 참조). 또한 컴파일 타임 형식 안전성을 높이기 위해 Objective-C 제네릭을 사용하여 속성을 선언할 수 있습니다.RLM_COLLECTION_TYPE(ObjectType) ... @property RLMArray<ObjectType *><ObjectType> *arrayOfObjectTypes;
RLMArray
와(과) 동일한 조건자를 사용하여RLMObject
및RLMResult
을(를) 쿼리할 수 있습니다.RLMArray
s는 직접 만들 수 없습니다.RLMArray
의RLMObject
속성은 액세스할 때 느리게 생성되거나 Realm을 쿼리하여 얻을 수 있습니다.키-값 관찰
RLMArray
RLMObject
서브클래스의RLMArray
속성에서 배열 키-값 관찰을 지원하며,RLMArray
인스턴스의invalidated
속성은RLMArray
가 managedRLMObject
에 연결될 때 키-값 관찰을 준수합니다(RLMArray
관리되지 않는RLMObject
의 은 절대로 무효화되지 않습니다).
더 보기RLMArray
는 속성인 객체에 연결되어 있으므로-mutableArrayValueForKey:
의 변경 가능한 collection 프록시 객체 또는 포함 객체에서 KVC 호환 변형 메서드를 사용할 필요가 없습니다. 대신RLMArray
에서 변형 메서드를 직접 호출할 수 있습니다.선언
Objective-C
@interface RLMArray<RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMArray<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
-
비동기 열기를 관찰하거나 취소하는 데 사용할 수 있는 작업 객체입니다.
동기화된 Realm이 비동기적으로 열리면 완료 콜백이 호출되기 전에 서버에서 Realm의 최신 상태가 다운로드됩니다. 이 작업 객체를 사용하여 다운로드 상태를 관찰하거나 다운로드를 취소할 수 있습니다. 동기화 세션 자체가 비동기적으로 생성되고 -[RLMRealm asyncOpenWithConfiguration:completion:]이 반환될 때 아직 존재하지 않을 수 있으므로 동기화 세션을 통한 다운로드를 관찰하려고 시도하는 대신 이 방법을 사용해야 합니다.
더 보기선언
Objective-C
@interface RLMAsyncOpenTask : NSObject
Swift
@_nonSendable(_assumed) class RLMAsyncOpenTask : NSObject, @unchecked Sendable
-
RLMSortDescriptor
은sortedResultsUsingDescriptors:
와 함께 사용할 속성 이름과 정렬 순서를 저장합니다.NSSortDescriptor
와 비슷하지만 Realm의 쿼리 엔진 에서 효율적으로 실행 수 있는 기능의 하위 집합만 지원합니다.
더 보기RLMSortDescriptor
인스턴스는 변경되지 않습니다.선언
Objective-C
@interface RLMSortDescriptor : NSObject
Swift
@_nonSendable(_assumed) class RLMSortDescriptor : NSObject, @unchecked Sendable
-
RLMCollectionChange
객체 는 Realm 알림 에서 보고한 컬렉션의 변경 사항에 대한 정보를 캡슐화합니다.RLMCollectionChange
RLMArray
및RLMResults
에-addNotificationBlock
에 등록된 알림 차단으로 전달되고 알림 차단 이 마지막으로 호출된 이후 컬렉션 에서 변경된 행을 보고합니다.변경 정보는 각 변경 유형에 대한 컬렉션의 행 인덱스 배열과
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
Swift
@_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>
Swift
@_nonSendable(_assumed) class RLMDecimal128 : NSObject, NSCopying, @unchecked Sendable
-
RLMDictionary
Realm 의 컨테이너 유형으로 키-값 쌍의 동적 컬렉션 을 나타냅니다.과 달리
NSDictionary
RLMDictionary
는 단일 키와 값 유형을 보유합니다. 이 Docs 에서는 이를 딕셔너리의 'type' 및 'keyType'이라고 합니다.RLMDictionary
속성을 선언할 때 객체 유형과 keyType은 포함해야 하는 객체와 동일한 이름으로 프로토콜을 준수하는 것으로 표시해야 합니다.RLM_COLLECTION_TYPE(ObjectType) ... @property RLMDictionary<NSString *, ObjectType *><RLMString, ObjectType> *objectTypeDictionary;
RLMDictionary
와(과) 동일한 조건자를 사용하여RLMObject
및RLMResult
을(를) 쿼리할 수 있습니다.RLMDictionary
s는 직접 만들 수 없습니다.RLMDictionary
의RLMObject
속성은 액세스할 때 느리게 생성되거나 Realm을 쿼리하여 얻을 수 있습니다.RLMDictionary
NSString
만 키로 지원합니다. Realm은 사전 키 내에서.
또는$
문자 사용을 허용하지 않습니다.키-값 관찰
더 보기RLMDictionary
RLMObject
하위 클래스의RLMDictionary
속성에 대한 사전 키-값 관찰을 지원하며,RLMDictionary
인스턴스의invalidated
속성은RLMDictionary
가 관리되는RLMObject
에 연결될 때 키-값 관찰을 준수합니다(RLMDictionary
관리되지 않는RLMObject
의 은 무효화되지 않습니다).선언
Objective-C
@interface RLMDictionary<RLMKeyType, RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMDictionary<RLMKeyType, RLMObjectType> : NSObject, RLMCollection where RLMKeyType : AnyObject, RLMObjectType : AnyObject
-
RLMDictionaryChange
객체는 Realm 알림에서 보고한 사전의 변경 사항에 대한 정보를 캡슐화합니다.
더 보기RLMDictionaryChange
RLMDictionary
-addNotificationBlock
에 등록된 알림 블록으로 전달되고, 알림 차단이 마지막으로 호출된 이후에 딕셔너리에서 어떤 키가 변경되었는지 보고합니다.선언
Objective-C
@interface RLMDictionaryChange : NSObject
Swift
@_nonSendable(_assumed) class RLMDictionaryChange : NSObject
-
RLMEmbeddedObject
Realm 모델 객체를 정의하는 데 사용되는 기본 클래스입니다.내장된 객체는 일반 객체와 유사하게 작동하지만 단일 상위 객체(자체적으로 내장될 수 있음)가 소유합니다. 일반적인 최상위 객체와 달리 내장된 객체는 Realm에서 직접 만들거나 Realm에 추가할 수 없습니다. 대신 상위 객체의 일부로 만들거나 관리되지 않는 객체를 상위 객체의 속성에 할당하는 방식으로만 만들 수 있습니다. 상위 객체가 삭제되거나 RLMObject 속성을 재할당하거나 포함된 배열에서 포함된 객체를 제거하여 상위 객체가 더 이상 포함된 객체를 가리키지 않도록 수정될 때 포함된 객체가 자동으로 삭제됩니다.
내장된 객체는 연결되는 상위 객체가 하나만 있을 수 있으며 기존 managed 내장된 객체에 연결하려고 하면 예외가 발생합니다.
RLMEmbeddedObject
에서 지원되는 속성 유형은 내장된 객체가 최상위 객체에 연결할 수 없다는 점을 제외하면RLMObject
와 동일하므로RLMObject
및RLMArray<RLMObject>
속성은 지원되지 않습니다(RLMEmbeddedObject
및RLMArray<RLMEmbeddedObject>
) 입니다.내장된 객체는 기본 키나 인덱싱된 속성을 가질 수 없습니다.
더 보기선언
Objective-C
@interface RLMEmbeddedObject : RLMObjectBase <RLMThreadConfined>
Swift
@_nonSendable(_assumed) class RLMEmbeddedObject : RLMObjectBase, RLMThreadConfined
-
위도와 경도 값으로 형성되는 점의 좌표를 나타내는 클래스입니다.
- 위도의 범위는 -90도에서 90도 사이입니다.
- 경도 범위는 -180도에서 180도 사이입니다.
- 고도는 음수 값을 가질 수 없습니다.
이 범위를 벗어나는 값은
RLMGeospatialPoint
을 만들려고 할 때 nil을 반환합니다.참고
지리 공간적 점을 저장하는 전용 유형은 없으며, 대신 아래 설명된 대로 점을 GeoJson 모양의 내장된 객체로 저장해야 합니다. 지리 공간적 쿼리(geoWithin
)는 이러한 유형의 객체에서만 실행할 수 있으며 그렇지 않으면 발생합니다.Realm의 지리적 점 유지는 현재 오리 타이핑을 사용하여 수행되며, 이는 특정 모양 을 가진 모든 모델 클래스를 지리적 위치가 포함된 것처럼 쿼리할 수 있음을 의미합니다. 권장되는 접근 방식은 내장된 객체를 사용하는 것입니다.
경고
이 구조는 지속될 수 없으며 (
RLMGeospatialBox
,RLMGeospatialPolygon
및RLMGeospatialCircle
)와 같은 다른 지리 공간적 도형을 빌드하는 데만 사용할 수 있습니다.경고
고도는 쿼리 계산에 사용되지 않습니다.
선언
Objective-C
@interface RLMGeospatialPoint : NSObject
Swift
class RLMGeospatialPoint : NSObject, @unchecked Sendable
-
지리 공간적
geoWithin
쿼리에 사용할 수 있는 사각형을 나타내는 클래스입니다.경고
이 클래스는 지속될 수 없으며 지리 공간적geoWithin
쿼리 내에서만 사용할 수 있습니다.선언
Objective-C
@interface RLMGeospatialBox : NSObject <RLMGeospatial>
Swift
class RLMGeospatialBox : NSObject, RLMGeospatial, @unchecked Sendable
-
지리 공간적
geoWithin
쿼리에 사용할 수 있는 다각형을 나타내는 클래스입니다.RLMGeospatialPolygon
은outerRing
라고 하는 외부Polygon
및 외부Polygon
내부의 내부 구멍 수에 제한이 없는 0개 이상의 내부Polygon
holes
를 준수하는 모양을 설명합니다.Polygon
는 최소 3개의 세그먼트를 준수하는 모양을 설명하며, 닫힌 다각형을 나타내려면 마지막RLMGeospatialPoint
과 첫 번째 이 동일해야 합니다(즉, 다각형을 정의하려면 최소 4개의 점이 필요합니다).RLMGeospatialPolygon
의 내부 구멍은 완전히 외부 링 내부에 있어야 합니다.hole
에는 다음과 같은 제한 사항이 있습니다.- 홀은 교차할 수 없습니다. 즉, 홀의 경계는 다른 홀의 내부와 외부 모두와 교차할 수 없습니다.
- 구멍은 가장자리를 공유할 수 없습니다.
- 구멍은 꼭지점을 공유할 수 있지만, 단일 구멍에 꼭지점이 두 번 나타날 수는 없습니다.
- 빈 구멍이 없을 수 있습니다.
중첩은 하나만 허용됩니다.
경고
이 클래스는 지속될 수 없으며 지리 공간적
geoWithin
쿼리 내에서만 사용할 수 있습니다.선언
Objective-C
@interface RLMGeospatialPolygon : NSObject <RLMGeospatial>
Swift
class RLMGeospatialPolygon : NSObject, RLMGeospatial, @unchecked Sendable
-
이 구조체는 거리를 나타내거나 변환하는 헬퍼입니다. 다음과 같은 지리 공간적 쿼리에 사용할 수 있습니다.
RLMGeospatialCircle
경고
이 구조는 지속될 수 없으며 다른 지리 공간적 형태를 만드는 데만 사용할 수 있습니다.선언
Objective-C
@interface RLMDistance : NSObject
Swift
class RLMDistance : NSObject, @unchecked Sendable
-
지리 공간적
geoWithin
쿼리에 사용할 수 있는 원을 나타내는 클래스입니다.경고
이 클래스는 지속될 수 없으며 지리 공간적geoWithin
쿼리 내에서만 사용할 수 있습니다.선언
Objective-C
@interface RLMGeospatialCircle : NSObject <RLMGeospatial>
Swift
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
Swift
class RLMLogger : NSObject
-
RLMMigration
인스턴스는 스키마 마이그레이션을 용이하게 하기 위한 정보를 캡슐화합니다.Realm 버전을 업데이트할 때 인스턴스
더 보기RLMMigration
가 사용자 정의RLMMigrationBlock
블록으로 전달됩니다. 이 인스턴스는 이전 및 새 데이터베이스 스키마, Realm의 객체에 대한 액세스를 제공하고 마이그레이션 중에 Realm을 수정하는 기능을 제공합니다.선언
Objective-C
@interface RLMMigration : NSObject
Swift
@_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
,float
및double
BOOL
orbool
NSDate
NSData
NSNumber<X>
여기서X
은RLMInt
,RLMFloat
,RLMDouble
또는RLMBool
중 하나이며, 선택적 숫자 속성의 경우RLMObject
서브클래스를 사용하여 다대일 관계를 모델링합니다.RLMArray<X>
, 여기서X
은RLMObject
서브클래스로, 다대다 관계를 모델링합니다.
쿼리하기
클래스 메서드
allObjects
,objectsWhere:
및objectsWithPredicate:
를 통해 직접 쿼리를 시작할 수 있습니다. 이 메서드를 사용하면 기본 Realm에서 해당 클래스의 인스턴스에 대한 사용자 지정 하위 클래스를 쉽게 쿼리할 수 있습니다.기본 Realm이 아닌 다른 Realm에서 검색하려면
allObjectsInRealm:
,objectsInRealm:where:
및objectsInRealm:withPredicate:
클래스 메서드를 사용하세요.~를 참조하세요.
RLMRealm
관계
자세한 내용은 Realm Swift 문서 를 참조하세요.
키-값 관찰
모든
RLMObject
속성(서브클래스에서 만든 속성 포함)은realm
및objectSchema
를 제외하고 키-값 관찰을 준수합니다.Realm 객체를 관찰할 때는 다음 팁을 염두에 두세요.
NSMutableArray
속성과RLMArray
달리 속성은 에서 반환된 프록시 객체를-mutableArrayValueForKey:
사용하거나 포함 클래스에서 KVC 변형 메서드를 정의할 필요가 없습니다.RLMArray
에서 직접 메서드를 호출하기만 하면 됩니다. 모든 변경 사항은 포함 객체에서 자동으로 관찰됩니다.- 관리되지 않는
RLMObject
인스턴스는 관찰된 속성이 있는 동안 Realm에 추가할 수 없습니다. -observeValueForKeyPath:ofObject:change:context:
내에서 managedRLMObject
을 수정하는 것은 권장되지 않습니다. 속성은 Realm이 쓰기 트랜잭션(write transaction) 중이 아닌 경우(예: 다른 스레드에서 변경이 적용된 후-[RLMRealm refresh]
가 호출된 경우) 및 변경 사항이 적용되기 전에 알림이 전송된 경우(NSKeyValueObservingOptionPrior
가 사용된 경우)에도 변경될 수 있습니다. 쓰기 트랜잭션(write transaction)을 시작할 수 없는 경우에 전송될 수 있습니다.
선언
Objective-C
@interface RLMObject : RLMObjectBase <RLMThreadConfined>
Swift
@_nonSendable(_assumed) class RLMObject : RLMObjectBase, RLMThreadConfined
-
선언
Objective-C
@interface RLMPropertyChange : NSObject
Swift
@_nonSendable(_assumed) class RLMPropertyChange : NSObject
-
12바이트(대부분)의 고유 ObjectId입니다.
ObjectId는 GUID 또는 UUID와 유사하며, 중앙 집중식 ID 생성기 없이도 객체를 고유하게 식별하는 데 사용할 수 있습니다. ObjectID는 다음으로 구성됩니다.
- 유닉스 시간 이후 ObjectId의 생성 시간을 초 단위로 측정하는 4바이트 타임스탬프입니다.
- 5바이트 임의 값
- 임의의 값으로 초기화된 3바이트 카운터입니다.
ObjectId는 빠르게 생성하기 위한 것입니다. ObjectId 필드를 기준으로 정렬하면 일반적으로 객체가 생성 순서대로 정렬됩니다.
더 보기선언
Objective-C
@interface RLMObjectId : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable
-
이 클래스는 Realm 모델 객체 스키마를 나타냅니다.
Realm을 사용할 때
RLMObjectSchema
인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.객체 스키마는 코어 데이터베이스의 테이블에 매핑됩니다.
더 보기선언
Objective-C
@interface RLMObjectSchema : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMObjectSchema : NSObject, NSCopying, @unchecked Sendable
-
RLMProperty
인스턴스는 객체 스키마의 컨텍스트에서 Realm이 managed하는 속성을 나타냅니다. 이러한 속성은 Realm 파일에 유지되거나 Realm의 다른 데이터에서 계산될 수 있습니다.Realm을 사용할 때
RLMProperty
인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.이러한 속성 인스턴스는 코어 데이터베이스의 열에 매핑됩니다.
더 보기선언
Objective-C
@interface RLMProperty : NSObject
Swift
@_nonSendable(_assumed) class RLMProperty : NSObject, @unchecked Sendable
-
더 보기RLMPropertyDescriptor
인스턴스는 지정된 클래스의 특정 속성을 나타냅니다.선언
Objective-C
@interface RLMPropertyDescriptor : NSObject
Swift
@_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
Swift
@_nonSendable(_assumed) class RLMRealm : NSObject
-
Realm 의 변경 사항을 구독 하는 메서드에서 반환되는 토큰입니다.
Realm의 구독 변경은
더 보기RLMNotificationToken
인스턴스를 반환하며, 이 인스턴스는 변경 사항의 구독을 취소하는 데 사용할 수 있습니다. 알림을 계속 받으려면 토큰에 대한 강력한 참조를 저장해야 합니다. 중지하려면-invalidate
메서드를 호출합니다. 토큰 할당이 취소되면 알림도 중지됩니다.선언
Objective-C
@interface RLMNotificationToken : NSObject
Swift
@_nonSendable(_assumed) class RLMNotificationToken : NSObject, @unchecked Sendable
-
RLMRealmConfiguration
인스턴스는 Realm의 인스턴스를 만드는 데 사용되는 다양한 옵션을 설명합니다.RLMRealmConfiguration
인스턴스는 일반NSObject
에 불과합니다.RLMRealm
및RLMObject
와 달리 이를 변경하지 않는 한 스레드 간에 자유롭게 공유할 수 있습니다.
더 보기objectClasses
속성을 설정하여 클래스 하위 집합에 대한 구성 객체를 만드는 데는 많은 비용이 소요될 수 있습니다. 이 때문에 일반적으로 Realm을 열 때마다 새 객체를 만드는 대신 각 개별 구성에 대해 단일 구성 객체를 캐시하고 재사용하는 것이 좋습니다.선언
Objective-C
@interface RLMRealmConfiguration : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMRealmConfiguration : NSObject, NSCopying
-
RLMResults
객체 쿼리에서 반환되는 Realm의 자동 업데이트 container 유형입니다. 쿼리의 결과를 객체의 collection 형태로 나타냅니다.RLMResults
RLMObject
및RLMArray
와(과) 동일한 조건자를 사용하여 쿼리할 수 있으며, 쿼리를 연결하여 결과를 추가로 필터링할 수 있습니다.RLMResults
현재 스레드에서 쓰기 트랜잭션(write transaction)을 포함하여 항상 현재 스레드에서 Realm의 현재 상태를 반영합니다. 한 가지 예외는for...in
빠른 열거를 사용하는 경우로, 이는 열거가 시작될 때 일부 객체가 삭제되거나 열거 중에 필터에 의해 제외되도록 수정되더라도 열거가 시작될 때 쿼리와 일치하는 객체를 항상 열거합니다.RLMResults
처음 액세스할 때 느리게 평가됩니다. 쿼리 결과가 요청될 때만 쿼리를 실행합니다. 즉, 여러 개의 임시RLMResults
를 연결하여 데이터를 정렬하고 필터링해도 중간 상태를 처리하는 추가 작업이 수행되지 않습니다.결과가 평가되거나 알림 차단이 추가되면 결과가 최신 상태로 유지되며 가능하면 백그라운드 스레드에서 최신 상태로 유지하기 위한 작업이 수행됩니다.
더 보기RLMResults
직접 인스턴스화할 수 없습니다.선언
Objective-C
@interface RLMResults<RLMObjectType> : NSObject <RLMCollection, NSFastEnumeration>
Swift
@_nonSendable(_assumed) class RLMResults<RLMObjectType> : NSObject, RLMCollection, NSFastEnumeration where RLMObjectType : AnyObject
-
RLMLinkingObjects
자동 업데이트 컨테이너 유형입니다. 상위 객체에 연결되는 객체 컬렉션을 나타냅니다.자세한 내용은 문서 의 '역관계' 섹션을 참조하세요.
선언
Objective-C
@interface RLMLinkingObjects<RLMObjectType : RLMObject *> : RLMResults
Swift
@_nonSendable(_assumed) class RLMLinkingObjects<RLMObjectType> : RLMResults<AnyObject> where RLMObjectType : RLMObject
-
RLMSchema
인스턴스는 Realm에서 관리하는 모델 객체 스키마 컬렉션을 나타냅니다.Realm을 사용할 때
RLMSchema
인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.스키마는 코어 데이터베이스의 collection 테이블에 매핑됩니다.
더 보기선언
Objective-C
@interface RLMSchema : NSObject <NSCopying>
Swift
@_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
Swift
@_nonSendable(_assumed) class RLMSectionedResultsChange : NSObject
-
RLM섹션에는 지정된 섹션 키에 속한 객체가 포함되어 있습니다.
더 보기선언
Objective-C
@interface RLMSection<RLMKeyType : id <RLMValue>, RLMObjectType> : NSObject <RLMSectionedResult>
Swift
@_nonSendable(_assumed) class RLMSection<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : AnyObject
-
섹션 키로 결정되는 섹션에 요소를 보유하는 지연 평가 컬렉션 입니다.
더 보기선언
Objective-C
@interface RLMSectionedResults<RLMKeyType : id <RLMValue>, RLMObjectType : id <RLMValue>> : NSObject <RLMSectionedResult>
Swift
@_nonSendable(_assumed) class RLMSectionedResults<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : RLMValue
-
고유 객체를 저장하는 데 사용되는 collection 데이터 유형입니다.
더 보기선언
Objective-C
@interface RLMSet<RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
-
스레드에 한정된 객체에 대한 스레드 세이프 참고를 포함하는 스레드 간에 전달되기 위한 객체입니다.
다른 스레드에서 대상 Realm의 스레드 세이프 참고를 확인하려면
-[RLMRealm resolveThreadSafeReference:]
으로 전달합니다.경고
RLMThreadSafeReference
객체는 최대 한 번만 해석되어야 합니다.RLMThreadSafeReference
확인에 실패하면 참고 할당이 해제될 때까지 Realm의 소스 버전이 고정됩니다.참고
소스 Realm의 버전에 대한 데이터는 모든 참고가 확인되거나 할당 해제될 때까지 유지되므로 수명이 짧은
RLMThreadSafeReference
을(를) 선호합니다.~를 참조하세요.
~를 참조하세요.
선언
Objective-C
@interface RLMThreadSafeReference<__covariant Confined : id <RLMThreadConfined>> : NSObject
Swift
@_nonSendable(_assumed) class RLMThreadSafeReference<Confined> : NSObject, @unchecked Sendable where Confined : RLMThreadConfined