RLMDictionary

Objective-C

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

스위프트

@_nonSendable(_assumed) class RLMDictionary<RLMKeyType, RLMObjectType> : NSObject, RLMCollection where RLMKeyType : AnyObject, RLMObjectType : AnyObject

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

    @property (nonatomic, readonly) NSUInteger count;

    스위프트

    var count: UInt { get }
  • 사전에 있는 객체의 유형입니다.

    선언

    Objective-C

    @property (nonatomic, readonly) RLMPropertyType type;

    스위프트

    var type: RLMPropertyType { get }
  • 이 사전에 사용된 키의 유형입니다.

    선언

    Objective-C

    @property (nonatomic, readonly) RLMPropertyType keyType;

    스위프트

    var keyType: RLMPropertyType { get }
  • collection의 객체가 nil 일 수 있는지 여부를 나타냅니다.

    선언

    Objective-C

    @property (nonatomic, readonly, getter=isOptional) BOOL optional;

    스위프트

    var isOptional: Bool { get }
  • 딕셔너리에 포함된 객체의 클래스 이름입니다.

    type 이(가) RLMPropertyTypeObject가 아닌 경우 nil 이(가) 됩니다.

    선언

    Objective-C

    @property (nonatomic, copy, readonly, nullable) NSString *objectClassName;

    스위프트

    var objectClassName: String? { get }
  • 딕셔너리를 관리하는 Realm입니다. 관리되지 않는 사전에 대해 nil 를 반환합니다.

    선언

    Objective-C

    @property (nonatomic, readonly, nullable) RLMRealm *realm;

    스위프트

    var realm: RLMRealm? { get }
  • 사전에 더 이상 액세스할 수 없는지 여부를 나타냅니다.

    선언

    Objective-C

    @property (nonatomic, readonly, getter=isInvalidated) BOOL invalidated;

    스위프트

    var isInvalidated: Bool { get }
  • 딕셔너리가 동결되었는지 여부를 나타냅니다.

    동결된 사전은 변경할 수 없으며 모든 스레드에서 액세스할 수 있습니다. 동결 사전은 managed 라이브 사전에서 -freeze 을(를) 호출하여 생성됩니다. 관리되지 않는 사전은 절대 동결되지 않습니다.

    선언

    Objective-C

    @property (nonatomic, readonly, getter=isFrozen) BOOL frozen;

    스위프트

    var isFrozen: Bool { get }

사전에서 객체 액세스

  • 지정된 키와 관련된 값을 반환합니다.

    @disvention 키가 '@'로 시작하지 않으면 객체(forKey:)를 호출합니다. 키가 '@'로 시작하는 경우 '@'를 제거하고 나머지 키와 함께 [super valueForKey:]를 호출합니다.

    선언

    Objective-C

    - (nullable id)valueForKey:(nonnull RLMKeyType)key;

    스위프트

    func value(forKey key: RLMKeyType) -> Any?

    매개변수

    key

    속성의 이름입니다.

    반환 값

    지정된 키 또는 nil 와 연결된 값입니다.

  • 사전의 키가 포함된 배열을 반환합니다.

    참고

    배열의 요소 순서가 정의되지 않았습니다.

    선언

    Objective-C

    @property (copy, readonly) NSArray<RLMKeyType> *_Nonnull allKeys;

    스위프트

    var allKeys: [RLMKeyType] { get }
  • 딕셔너리의 값이 포함된 배열을 반환합니다.

    참고

    배열의 요소 순서가 정의되지 않았습니다.

    선언

    Objective-C

    @property (copy, readonly) NSArray<RLMObjectType> *_Nonnull allValues;

    스위프트

    var allValues: [RLMObjectType] { get }
  • 지정된 키와 관련된 값을 반환합니다.

    참고

    nil 지정된 키와 연결된 값이 없으면 반환됩니다. null이 키와 연결된 경우 NSNull이 반환됩니다.

    선언

    Objective-C

    - (nullable RLMObjectType)objectForKey:(nonnull RLMKeyType)key;

    스위프트

    func object(forKey key: RLMKeyType) -> RLMObjectType?

    매개변수

    key

    해당 값을 반환할 키입니다.

    반환 값

    키와 연결된 값입니다.

  • 지정된 키와 관련된 값을 반환합니다.

    참고

    nil 지정된 키와 연결된 값이 없으면 반환됩니다. null이 키와 연결된 경우 NSNull이 반환됩니다.

    선언

    Objective-C

    - (nullable RLMObjectType)objectForKeyedSubscript:(nonnull RLMKeyType)key;

    스위프트

    subscript(key: RLMKeyType) -> RLMObjectType? { get set }

    매개변수

    key

    해당 값을 반환할 키입니다.

    반환 값

    키와 연결된 값입니다.

  • 딕셔너리의 각 키-값 쌍에 지정된 블록 객체를 적용합니다.

    참고

    블록이 *stop을 예로 설정하면 열거가 중지됩니다.

    선언

    Objective-C

    - (void)enumerateKeysAndObjectsUsingBlock:
        (nonnull void (^)(RLMKeyType _Nonnull, RLMObjectType _Nonnull,
                          BOOL *_Nonnull))block;

    스위프트

    func enumerateKeysAndObjects(_ block: @escaping (RLMKeyType, RLMObjectType, UnsafeMutablePointer<ObjCBool>) -> Void)

    매개변수

    block

    딕셔너리의 항목에 대해 작업을 수행하는 차단 객체입니다.

사전에서 객체 추가, 제거 및 바꾸기

  • 사전의 내용을 다른 사전의 내용(NSDictionary 또는 RLMDictionary)으로 바꿉니다.

    이렇게 하면 이 사전의 모든 요소를 제거한 다음 지정된 사전의 각 요소를 적용합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    경고

    otherDictionary가 self이면 빈 사전이 생성됩니다.

    선언

    Objective-C

    - (void)setDictionary:(nonnull id)otherDictionary;

    스위프트

    func setDictionary(_ otherDictionary: Any)
  • 딕셔너리의 모든 내용을 제거합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)removeAllObjects;

    스위프트

    func removeAllObjects()
  • 지정된 배열의 요소로 지정된 사전에서 항목을 제거합니다. 지정된 키가 존재하지 않는 경우 해당 키에 대한 변형은 발생하지 않습니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)removeObjectsForKeys:(nonnull NSArray<RLMKeyType> *)keyArray;

    스위프트

    func removeObjects(forKeys keyArray: [RLMKeyType])
  • 사전에서 지정된 키와 관련 값을 제거합니다. 키가 존재하지 않으면 사전이 수정되지 않습니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)removeObjectForKey:(nonnull RLMKeyType)key;

    스위프트

    func removeObject(forKey key: RLMKeyType)
  • 키가 없는 경우 지정된 키-값 쌍을 사전에 추가하고, 키가 이미 있는 경우 지정된 키의 값을 업데이트합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)setObject:(nullable RLMObjectType)obj
        forKeyedSubscript:(nonnull RLMKeyType)key;
  • 키가 없는 경우 지정된 키-값 쌍을 사전에 추가하고, 키가 이미 있는 경우 지정된 키의 값을 업데이트합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)setObject:(nullable RLMObjectType)anObject
               forKey:(nonnull RLMKeyType)aKey;

    스위프트

    func setObject(_ anObject: RLMObjectType?, forKey aKey: RLMKeyType)
  • 다른 사전의 항목을 수신 사전에 추가합니다.

    참고

    수신 사전에 otherDictionary와 동일한 키가 포함되어 있는 경우 수신 사전은 일치하는 키에 대해 각 키-값 쌍을 업데이트합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Objective-C

    - (void)addEntriesFromDictionary:(nonnull id<NSFastEnumeration>)otherDictionary;

    스위프트

    func addEntries(fromDictionary otherDictionary: any NSFastEnumeration)

    매개변수

    otherDictionary

    수신 사전과 동일한 유형의 객체를 포함하는 NSDictionary 또는 RLMDictionary 와 같은 열거 가능한 객체입니다.

사전 쿼리

  • 딕셔너리에서 지정된 술어와 일치하는 모든 값을 반환합니다.

    참고

    값을 쿼리할 때 사전의 키는 무시되며 RLMResults 에 반환되지 않습니다.

    선언

    Objective-C

    - (nonnull RLMResults<RLMObjectType> *)objectsWhere:
        (nonnull NSString *)predicateFormat, ...;

    매개변수

    predicateFormat

    조건자 형식 문자열이며, 선택적으로 그 뒤에 다양한 수의 인수가 옵니다.

    반환 값

    지정된 조건자와 일치하는 객체의 RLMResults 입니다.

  • 딕셔너리에서 지정된 술어와 일치하는 모든 값을 반환합니다.

    참고

    값을 쿼리할 때 사전의 키는 무시되며 RLMResults 에 반환되지 않습니다.

    선언

    Objective-C

    - (nonnull RLMResults<RLMObjectType> *)objectsWithPredicate:
        (nonnull NSPredicate *)predicate;

    스위프트

    func objects(with predicate: NSPredicate) -> RLMResults

    매개변수

    predicate

    객체를 필터링하는 데 사용할 조건자입니다.

    반환 값

    지정된 조건자와 일치하는 객체의 RLMResults 입니다.

  • 사전에 있는 모든 값의 정렬된 RLMResults를 반환합니다.

    참고

    값을 정렬할 때 사전의 키는 무시되며 RLMResults 에서 반환되지 않습니다.

    선언

    Objective-C

    - (nonnull RLMResults<RLMObjectType> *)
        sortedResultsUsingKeyPath:(nonnull NSString *)keyPath
                        ascending:(BOOL)ascending;

    스위프트

    func sortedResults(usingKeyPath keyPath: String, ascending: Bool) -> RLMResults

    매개변수

    keyPath

    정렬 기준이 되는 키 경로입니다.

    ascending

    정렬할 방향입니다.

    반환 값

    지정된 키 경로를 기준으로 정렬된 RLMResults 입니다.

  • 사전에 있는 모든 값의 정렬된 RLMResults를 반환합니다.

    참고

    값을 정렬할 때 사전의 키는 무시되며 RLMResults 에서 반환되지 않습니다.

    선언

    Objective-C

    - (nonnull RLMResults<RLMObjectType> *)sortedResultsUsingDescriptors:
        (nonnull NSArray<RLMSortDescriptor *> *)properties;

    스위프트

    func sortedResults(using properties: [RLMSortDescriptor]) -> RLMResults

    매개변수

    properties

    정렬 기준이 되는 RLMSortDescriptor의 배열입니다.

    반환 값

    지정된 속성을 기준으로 정렬된 RLMResults 입니다.

  • 사전의 모든 값에서 고유한 RLMResults 을(를) 반환합니다.

    참고

    사전의 키는 무시되며 RLMResults 에서 반환되지 않습니다.

    선언

    Objective-C

    - (nonnull RLMResults<RLMObjectType> *)distinctResultsUsingKeyPaths:
        (nonnull NSArray<NSString *> *)keyPaths;

    스위프트

    func distinctResults(usingKeyPaths keyPaths: [String]) -> RLMResults

    매개변수

    keyPaths

    구분할 키 경로입니다.

    반환 값

    키 경로의 고유 값이 있는 RLMResults 입니다.

속성 값 집계

  • 사전에 있는 모든 값 중 지정된 속성의 최소값(가장 낮은 값)을 반환합니다.

    NSNumber *min = [object.dictionaryProperty minOfProperty:@"age"];
    

    선언

    Objective-C

    - (nullable id)minOfProperty:(nonnull NSString *)property;

    스위프트

    func min(ofProperty property: String) -> Any?

    매개변수

    property

    최소값을 구하려는 속성입니다. int, float, double, NSDate, RLMValue , RLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

    속성의 최소값이거나 사전이 비어 있는 경우 nil 입니다.

  • 사전에 있는 모든 객체 중 지정된 속성의 최대값(가장 높은 값)을 반환합니다.

    NSNumber *max = [object.dictionaryProperty maxOfProperty:@"age"];
    

    선언

    Objective-C

    - (nullable id)maxOfProperty:(nonnull NSString *)property;

    스위프트

    func max(ofProperty property: String) -> Any?

    매개변수

    property

    최소값을 구하려는 속성입니다. int, float, double, NSDate, RLMValue , RLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

    속성의 최대값이거나 사전이 비어 있는 경우 nil 입니다.

  • 딕셔너리의 모든 객체에 대해 지정된 속성의 고유 값의 합계를 반환합니다.

    NSNumber *sum = [object.dictionaryProperty sumOfProperty:@"age"];
    

    선언

    Objective-C

    - (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;

    스위프트

    func sum(ofProperty property: String) -> NSNumber

    매개변수

    property

    최소값을 구하려는 속성입니다. int, float, double, RLMValue , RLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

    지정된 속성의 합계입니다.

  • 딕셔너리의 객체에 대한 지정된 속성의 평균값을 반환합니다.

    NSNumber *average = [object.dictionaryProperty averageOfProperty:@"age"];
    

    선언

    Objective-C

    - (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;

    스위프트

    func average(ofProperty property: String) -> NSNumber?

    매개변수

    property

    최소값을 구하려는 속성입니다. int, float, double, NSDate, RLMValue , RLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

    지정된 속성의 평균값이거나 사전이 비어 있는 경우 nil 입니다.

알림

  • 딕셔너리가 변경될 때마다 호출될 블록을 등록합니다.

    블록은 초기 사전과 함께 비동기적으로 호출된 다음, 사전 내의 키나 값을 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.

    차단이 처음 호출되면 changes 매개변수는 nil 가 됩니다. 그 이후의 각 호출에 대해 사전에서 추가, 수정 또는 삭제된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 딕셔너리의 키나 값을 수정하지 않은 경우 블록이 전혀 호출되지 않습니다.

    오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상 nil 입니다.

    알림은 표준 이벤트 루프를 통해 전달되므로 다른 활동으로 이벤트 루프가 차단된 동안에는 전달할 수 없습니다. 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 결과에 대한 알림이 포함될 수 있습니다. 예를 들어 다음 코드는 알림 차단을 추가한 직후 쓰기 트랜잭션(write transaction)을 수행하므로 초기 알림이 먼저 전달될 기회가 없습니다. 결과적으로 초기 알림에는 쓰기 트랜잭션(write transaction) 후 Realm의 상태가 반영됩니다.

    Person *person = [[Person allObjectsInRealm:realm] firstObject];
    NSLog(@"person.dogs.count: %zu", person.dogs.count); // => 0
    self.token = [person.dogs addNotificationBlock(RLMDictionary<NSString *, Dog *><RLMString, Dog> *dogs,
                                      RLMDictionaryChange *changes,
                                      NSError *error) {
        // Only fired once for the example
        NSLog(@"dogs.count: %zu", dogs.count); // => 1
    }];
    [realm transactionWithBlock:^{
        Dog *dog = [[Dog alloc] init];
        dog.name = @"Rex";
        person.dogs[@"frenchBulldog"] = dog;
    }];
    // end of run loop execution context
    

    업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서 -invalidate 을 호출합니다.

    경고

    쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.

    경고

    이 메서드는 고정되지 않은 관리되는 사전에서만 호출할 수 있습니다.

    선언

    Objective-C

    - (nonnull RLMNotificationToken *)addNotificationBlock:
        (nonnull void (^)(RLMDictionary<RLMKeyType, RLMObjectType> *_Nullable,
                          RLMDictionaryChange *_Nullable, NSError *_Nullable))block;

    스위프트

    func addNotificationBlock(_ block: @escaping (RLMDictionary<RLMKeyType, RLMObjectType>?, RLMDictionaryChange?, (any Error)?) -> Void) -> RLMNotificationToken

    매개변수

    block

    딕셔너리가 변경될 때마다 호출되는 블록입니다.

    반환 값

    업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.

  • 딕셔너리가 변경될 때마다 호출될 블록을 등록합니다.

    블록은 초기 사전과 비동기적으로 호출된 다음, 사전의 키-값이나 결과에 포함된 객체를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.

    차단이 처음 호출되면 changes 매개변수는 nil 가 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 딕셔너리의 객체를 수정하지 않은 경우 블록이 전혀 호출되지 않습니다.

    오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상 nil 입니다.

    알림은 지정된 대기열에 전달됩니다. 대기열이 차단되어 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다.

    업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서 -invalidate 을 호출합니다.

    경고

    포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.

    경고

    대기열은 직렬 대기열이어야 합니다.

    선언

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:
            (nonnull void (^)(RLMDictionary<RLMKeyType, RLMObjectType> *_Nullable,
                              RLMDictionaryChange *_Nullable,
                              NSError *_Nullable))block
                       queue:(nullable dispatch_queue_t)queue;

    스위프트

    func addNotificationBlock(_ block: @escaping (RLMDictionary<RLMKeyType, RLMObjectType>?, RLMDictionaryChange?, (any Error)?) -> Void, queue: dispatch_queue_t?) -> RLMNotificationToken

    매개변수

    block

    변경이 발생할 때마다 호출되는 차단입니다.

    queue

    알림을 전달할 직렬 대기열입니다.

    반환 값

    업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.

  • 딕셔너리가 변경될 때마다 호출될 블록을 등록합니다.

    블록은 초기 사전과 비동기적으로 호출된 다음, 사전의 키-값이나 결과에 포함된 객체를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.

    차단이 처음 호출되면 changes 매개변수는 nil 가 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 딕셔너리의 객체를 수정하지 않은 경우 블록이 전혀 호출되지 않습니다.

    오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상 nil 입니다.

    알림은 지정된 대기열에 전달됩니다. 대기열이 차단되어 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다.

    업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서 -invalidate 을 호출합니다.

    경고

    포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.

    경고

    대기열은 직렬 대기열이어야 합니다.

    선언

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:
            (nonnull void (^)(RLMDictionary<RLMKeyType, RLMObjectType> *_Nullable,
                              RLMDictionaryChange *_Nullable,
                              NSError *_Nullable))block
                    keyPaths:(nullable NSArray<NSString *> *)keyPaths
                       queue:(nullable dispatch_queue_t)queue;

    스위프트

    func addNotificationBlock(_ block: @escaping (RLMDictionary<RLMKeyType, RLMObjectType>?, RLMDictionaryChange?, (any Error)?) -> Void, keyPaths: [String]?, queue: dispatch_queue_t?) -> RLMNotificationToken

    매개변수

    block

    변경이 발생할 때마다 호출되는 차단입니다.

    keyPaths

    이러한 키 경로에서 발생하는 변경에 대해 차단이 호출됩니다. 키 경로가 제공되지 않으면 모든 속성 키 경로에 대해 알림이 전달됩니다.

    반환 값

    업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.

  • 딕셔너리가 변경될 때마다 호출될 블록을 등록합니다.

    블록은 초기 사전과 비동기적으로 호출된 다음, 사전의 키-값이나 결과에 포함된 객체를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.

    차단이 처음 호출되면 changes 매개변수는 nil 가 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 딕셔너리의 객체를 수정하지 않은 경우 블록이 전혀 호출되지 않습니다.

    오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상 nil 입니다.

    업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서 -invalidate 을 호출합니다.

    경고

    포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.

    경고

    대기열은 직렬 대기열이어야 합니다.

    선언

    Objective-C

    - (nonnull RLMNotificationToken *)
        addNotificationBlock:
            (nonnull void (^)(RLMDictionary<RLMKeyType, RLMObjectType> *_Nullable,
                              RLMDictionaryChange *_Nullable,
                              NSError *_Nullable))block
                    keyPaths:(nullable NSArray<NSString *> *)keyPaths;

    스위프트

    func addNotificationBlock(_ block: @escaping (RLMDictionary<RLMKeyType, RLMObjectType>?, RLMDictionaryChange?, (any Error)?) -> Void, keyPaths: [String]?) -> RLMNotificationToken

    매개변수

    block

    변경이 발생할 때마다 호출되는 차단입니다.

    keyPaths

    이러한 키 경로에서 발생하는 변경에 대해 차단이 호출됩니다. 키 경로가 제공되지 않으면 모든 속성 키 경로에 대해 알림이 전달됩니다.

    반환 값

    업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.

동결

  • 사전의 고정된(불변) 스냅샷을 반환합니다.

    동결 사본은 변경이 불가능한 딕셔너리로 이 딕셔너리에 현재 포함되어 있는 것과 동일한 데이터를 포함하지만 포함하는 Realm에 쓰기가 이루어질 때 업데이트되지 않습니다. 라이브 사전과 달리 동결 사전은 모든 스레드에서 액세스할 수 있습니다.

    경고

    쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.

    경고

    이 메서드는 managed 사전에서만 호출할 수 있습니다.

    경고

    Realm에서 쓰기 트랜잭션(write transaction)을 수행하는 동안 동결된 사전을 오랫동안 유지하면 Realm 파일 크기가 커질 수 있습니다. 자세한 내용은 RLMRealmConfiguration.maximumNumberOfActiveVersions 를 참조하세요.

    선언

    Objective-C

    - (nonnull instancetype)freeze;

    스위프트

    func freeze() -> Self
  • 이 동결된 collection의 라이브 버전을 반환합니다.

    이 메서드는 동일한 동결 컬렉션의 라이브 사본에 대한 참조를 확인합니다. 라이브 컬렉션에서 호출하면 자체를 반환합니다.

    선언

    Objective-C

    - (nonnull instancetype)thaw;

    스위프트

    func thaw() -> Self

사용할 수 없는 메서드

  • 사용할 수 없음

    RLMDictionary를 직접 만들 수 없습니다.

    -[RLMDictionary init] RLMDictionary을 직접 만들 수 없기 때문에 사용할 수 없습니다. RLMDictionaryRLMObject속성은 액세스 시 느리게 생성됩니다.

    선언

    Objective-C

    - (nonnull instancetype)init;
  • 사용할 수 없음

    RLMDictionary를 직접 만들 수 없습니다.

    +[RLMDictionary new] RLMDictionary을 직접 만들 수 없기 때문에 사용할 수 없습니다. RLMDictionaryRLMObject속성은 액세스 시 느리게 생성됩니다.

    선언

    Objective-C

    + (nonnull instancetype)new;