RLMDictionary

Objective-C

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

Swift

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

RLMDictionary Realm 의 컨테이너 유형으로 키-값 쌍의 동적 컬렉션 을 나타냅니다.

과 달리 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;

    Swift

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

    선언

    Objective-C

    @property (nonatomic, readonly) RLMPropertyType type;

    Swift

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

    선언

    Objective-C

    @property (nonatomic, readonly) RLMPropertyType keyType;

    Swift

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

    선언

    Objective-C

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

    Swift

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

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

    선언

    Objective-C

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

    Swift

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

    선언

    Objective-C

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

    Swift

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

    선언

    Objective-C

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

    Swift

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

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

    선언

    Objective-C

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

    Swift

    var isFrozen: Bool { get }

사전에서 객체 액세스

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

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    key

    속성의 이름입니다.

    반환 값

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

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    key

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

    반환 값

    키와 관련된 값입니다.

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    key

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

    반환 값

    키와 관련된 값입니다.

  • 주어진 차단 객체 를 딕셔너리의 각 키-값 쌍에 적용합니다.

    참고

    차단 이 *stop을 '예'로 설정하면 열거가 중지됩니다.

    선언

    Objective-C

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

    Swift

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

    매개변수

    block

    딕셔너리의 항목에 대해 작업할 차단 객체 입니다.

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

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

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

    경고

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

    경고

    otherDictionary가 self인 경우 빈 사전이 생성됩니다.

    선언

    Objective-C

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

    Swift

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

    경고

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

    선언

    Objective-C

    - (void)removeAllObjects;

    Swift

    func removeAllObjects()
  • 지정된 배열 의 요소로 지정된 딕셔너리 항목을 제거합니다. 지정된 키가 존재하지 않으면 해당 키에 대한 변형이 발생하지 않습니다.

    경고

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

    선언

    Objective-C

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

    Swift

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

    경고

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

    선언

    Objective-C

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

    Swift

    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;

    Swift

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

    참고

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

    경고

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

    선언

    Objective-C

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

    Swift

    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;

    Swift

    func objects(with predicate: NSPredicate) -> RLMResults

    매개변수

    predicate

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

    반환 값

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

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    keyPath

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

    ascending

    정렬할 방향입니다.

    반환 값

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

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    properties

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

    반환 값

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

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

    참고

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    keyPaths

    구분할 키 경로입니다.

    반환 값

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

속성 값 집계

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

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    property

    최소값이 필요한 속성 입니다. int, float, double, NSDate, RLMValueRLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

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

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

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    property

    최소값이 필요한 속성 입니다. int, float, double, NSDate, RLMValueRLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

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

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

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

    선언

    Objective-C

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

    Swift

    func sum(ofProperty property: String) -> NSNumber

    매개변수

    property

    최소값이 필요한 속성 입니다. int, float, double, RLMValueRLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

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

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

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

    선언

    Objective-C

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

    Swift

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

    매개변수

    property

    최소값이 필요한 속성 입니다. int, float, double, NSDate, RLMValueRLMDecimal128 유형의 속성만 지원됩니다.

    반환 값

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

알림

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

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

    차단 이 처음 호출될 때 changes 매개변수는 nil 이(가) 됩니다. 그 이후의 각 호출에 대해 사전에서 추가, 수정 또는 삭제된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션 (write transaction) (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;

    Swift

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

    매개변수

    block

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

    반환 값

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

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

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

    차단 이 처음 호출될 때 changes 매개변수는 nil 이(가) 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션 (write transaction) (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;

    Swift

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

    매개변수

    block

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

    queue

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

    반환 값

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

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

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

    차단 이 처음 호출될 때 changes 매개변수는 nil 이(가) 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션 (write transaction) (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;

    Swift

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

    매개변수

    block

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

    keyPaths

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

    반환 값

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

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

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

    차단 이 처음 호출될 때 changes 매개변수는 nil 이(가) 됩니다. 그 이후의 각 호출에 대해 사전에서 추가되거나 수정된 키에 대한 정보가 포함됩니다. 쓰기 트랜잭션 (write transaction) (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;

    Swift

    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 Realm 파일 크기가 커질 수 있습니다. 자세한 내용은 RLMRealmConfiguration.maximumNumberOfActiveVersions 를 참조하세요.

    선언

    Objective-C

    - (nonnull instancetype)freeze;

    Swift

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

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

    선언

    Objective-C

    - (nonnull instancetype)thaw;

    Swift

    func thaw() -> Self

사용할 수 없는 메서드

  • 사용할 수 없음

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

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

    선언

    Objective-C

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

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

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

    선언

    Objective-C

    + (nonnull instancetype)new;