RLMArray
Objective-C
@interface RLMArray<RLMObjectType> : NSObject <RLMCollection>
Swift
@_nonSendable(_assumed) class RLMArray<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
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
가 managed RLMObject
에 연결될 때 키-값 관찰을 준수합니다(RLMArray
관리되지 않는 RLMObject
의 은 절대로 무효화되지 않습니다).
RLMArray
는 속성인 객체에 연결되어 있으므로 -mutableArrayValueForKey:
의 변경 가능한 collection 프록시 객체 또는 포함 객체에서 KVC 호환 변형 메서드를 사용할 필요가 없습니다. 대신 RLMArray
에서 변형 메서드를 직접 호출할 수 있습니다.
-
배열의 객체 수입니다.
선언
Objective-C
@property (nonatomic, readonly) NSUInteger count;
Swift
var count: UInt { get }
-
배열에 있는 객체의 유형입니다.
선언
Objective-C
@property (nonatomic, readonly) RLMPropertyType type;
Swift
var type: 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 }
-
배열에 더 이상 액세스할 수 없는지 여부를 나타냅니다.
선언
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 }
-
지정된 인덱스에 있는 객체를 반환합니다.
선언
Objective-C
- (nonnull RLMObjectType)objectAtIndex:(NSUInteger)index;
Swift
func object(at index: UInt) -> RLMObjectType
매개변수
index
조회할 인덱스입니다.
반환 값
배열에 포함된 유형의 객체입니다.
-
지정된 인덱스 세트로 지정된 인덱스에 배열의 객체를 포함하는 배열을 반환합니다. 인덱스 세트에 배열 범위를 벗어난 인덱스가 포함된 경우
nil
이 반환됩니다.선언
Objective-C
- (nullable NSArray<RLMObjectType> *)objectsAtIndexes: (nonnull NSIndexSet *)indexes;
Swift
func objects(at indexes: IndexSet) -> [RLMObjectType]?
매개변수
indexes
객체를 조회할 배열의 인덱스입니다.
반환 값
지정된 인덱스에 있는 객체입니다.
-
배열의 첫 번째 객체를 반환합니다.
빈 배열에서 호출되면
nil
를 반환합니다.선언
Objective-C
- (nullable RLMObjectType)firstObject;
Swift
func firstObject() -> RLMObjectType?
반환 값
배열에 포함된 유형의 객체입니다.
-
배열의 마지막 객체를 반환합니다.
빈 배열에서 호출되면
nil
를 반환합니다.선언
Objective-C
- (nullable RLMObjectType)lastObject;
Swift
func lastObject() -> RLMObjectType?
반환 값
배열에 포함된 유형의 객체입니다.
-
배열의 끝에 객체를 추가합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)addObject:(nonnull RLMObjectType)object;
Swift
func add(_ object: RLMObjectType)
매개변수
object
배열에 포함된 유형의 객체입니다.
-
배열의 끝에 객체 배열을 추가합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)addObjects:(nonnull id<NSFastEnumeration>)objects;
Swift
func addObjects(_ objects: any NSFastEnumeration)
매개변수
objects
배열과 동일한 클래스의 객체를 포함하는
NSArray
또는RLMResults
와 같은 열거 가능한 객체입니다. -
지정된 인덱스에 객체를 삽입합니다.
인덱스가 배열의 경계를 초과하면 예외가 발생합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)insertObject:(nonnull RLMObjectType)anObject atIndex:(NSUInteger)index;
Swift
func insert(_ anObject: RLMObjectType, at index: UInt)
매개변수
anObject
배열에 포함된 유형의 객체입니다.
index
객체를 삽입할 인덱스입니다.
-
지정된 인덱스에서 객체를 제거합니다.
인덱스가 배열의 경계를 초과하면 예외가 발생합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)removeObjectAtIndex:(NSUInteger)index;
Swift
func removeObject(at index: UInt)
매개변수
index
제거할 객체를 식별하는 배열 인덱스입니다.
-
배열의 마지막 객체를 제거합니다.
배열이 이미 비어 있는 경우 이는 작동하지 않습니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.선언
Objective-C
- (void)removeLastObject;
Swift
func removeLastObject()
-
배열에서 모든 객체를 제거합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.선언
Objective-C
- (void)removeAllObjects;
Swift
func removeAllObjects()
-
지정된 인덱스에 있는 객체를 새 객체로 바꿉니다.
인덱스가 배열의 경계를 초과하면 예외가 발생합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(nonnull RLMObjectType)anObject;
Swift
func replaceObject(at index: UInt, with anObject: RLMObjectType)
매개변수
index
교체할 객체의 인덱스입니다.
anObject
객체(
objectClassName
선택기에서 반환된 것과 동일한 유형)입니다. -
지정된 소스 인덱스에 있는 객체를 지정된 대상 인덱스로 이동합니다.
인덱스가 배열의 경계를 초과하면 예외가 발생합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)moveObjectAtIndex:(NSUInteger)sourceIndex toIndex:(NSUInteger)destinationIndex;
Swift
func moveObject(at sourceIndex: UInt, to destinationIndex: UInt)
매개변수
sourceIndex
이동할 객체의 인덱스입니다.
destinationIndex
sourceIndex
에 있는 객체가 이동해야 하는 인덱스입니다. -
지정된 인덱스에서 배열의 객체를 교환합니다.
인덱스 중 하나가 배열의 경계를 초과하면 예외가 발생합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Objective-C
- (void)exchangeObjectAtIndex:(NSUInteger)index1 withObjectAtIndex:(NSUInteger)index2;
Swift
func exchangeObject(at index1: UInt, withObjectAt index2: UInt)
매개변수
index1
인덱스
index2
에 있는 객체를 대체해야 하는 객체의 인덱스입니다.index2
인덱스
index1
에 있는 객체를 대체해야 하는 객체의 인덱스입니다.
-
배열에 있는 객체의 인덱스를 반환합니다.
배열에서 객체를 찾을 수 없으면
NSNotFound
를 반환합니다.선언
Objective-C
- (NSUInteger)indexOfObject:(nonnull RLMObjectType)object;
Swift
func index(of object: RLMObjectType) -> UInt
매개변수
object
객체(
objectClassName
선택기에서 반환된 것과 동일한 유형)입니다. -
배열에서 조건자와 일치하는 첫 번째 객체의 인덱스를 반환합니다.
선언
Objective-C
- (NSUInteger)indexOfObjectWhere:(nonnull NSString *)predicateFormat, ...;
매개변수
predicateFormat
조건자 형식 문자열이며, 선택적으로 그 뒤에 다양한 수의 인수가 옵니다.
반환 값
객체의 인덱스이거나 객체가 배열에서 발견되지 않은 경우
NSNotFound
입니다. -
배열에서 조건자와 일치하는 첫 번째 객체의 인덱스를 반환합니다.
선언
Objective-C
- (NSUInteger)indexOfObjectWithPredicate:(nonnull NSPredicate *)predicate;
Swift
func indexOfObject(with predicate: NSPredicate) -> UInt
매개변수
predicate
객체를 필터링하는 데 사용할 조건자입니다.
반환 값
객체의 인덱스이거나 객체가 배열에서 발견되지 않은 경우
NSNotFound
입니다. -
배열에서 지정된 조건자와 일치하는 모든 객체를 반환합니다.
선언
Objective-C
- (nonnull RLMResults<RLMObjectType> *)objectsWhere: (nonnull NSString *)predicateFormat, ...;
매개변수
predicateFormat
조건자 형식 문자열이며, 선택적으로 그 뒤에 다양한 수의 인수가 옵니다.
반환 값
지정된 조건자와 일치하는 객체의
RLMResults
입니다. -
배열에서 지정된 조건자와 일치하는 모든 객체를 반환합니다.
선언
Objective-C
- (nonnull RLMResults<RLMObjectType> *)objectsWithPredicate: (nonnull NSPredicate *)predicate;
Swift
func objects(with predicate: NSPredicate) -> RLMResults
매개변수
predicate
객체를 필터링하는 데 사용할 조건자입니다.
반환 값
지정된 조건자와 일치하는 객체의
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
을 반환합니다.선언
Objective-C
- (nonnull RLMResults<RLMObjectType> *)sortedResultsUsingDescriptors: (nonnull NSArray<RLMSortDescriptor *> *)properties;
Swift
func sortedResults(using properties: [RLMSortDescriptor]) -> RLMResults
매개변수
properties
정렬 기준이 되는
RLMSortDescriptor
의 배열입니다.반환 값
지정된 속성을 기준으로 정렬된
RLMResults
입니다. -
배열에서 고유한
RLMResults
를 반환합니다.선언
Objective-C
- (nonnull RLMResults<RLMObjectType> *)distinctResultsUsingKeyPaths: (nonnull NSArray<NSString *> *)keyPaths;
Swift
func distinctResults(usingKeyPaths keyPaths: [String]) -> RLMResults
매개변수
keyPaths
구분할 키 경로입니다.
반환 값
키 경로의 고유 값이 있는
RLMResults
입니다.
-
지정된 속성 키 경로에서 이 컬렉션을 정렬 및 섹션화하여 결과를
RLMSectionedResults
인스턴스로 반환합니다.선언
Objective-C
- (nonnull RLMSectionedResults *) sectionedResultsSortedUsingKeyPath:(nonnull NSString *)keyPath ascending:(BOOL)ascending keyBlock: (nonnull RLMSectionedResultsKeyBlock)keyBlock;
Swift
func sectionedResultsSorted(usingKeyPath keyPath: String, ascending: Bool, keyBlock: @escaping RLMSectionedResultsKeyBlock) -> RLMSectionedResults
매개변수
keyPath
정렬할 속성 키 경로입니다.
ascending
정렬할 방향입니다.
keyBlock
Results collection의 각 요소에 대해 호출되는 콜백입니다. 이 콜백은 collection에 있는 요소의 섹션 키를 반환하는 것입니다.
반환 값
RLM 섹션 결과의 인스턴스입니다.
-
지정된 정렬 설명자 배열에서 이 collection을 정렬하고 섹션화하여 결과를
RLMSectionedResults
인스턴스로 반환합니다.참고
프라이머리 정렬 설명자는 섹션 키 결정을 담당해야 합니다.
선언
Objective-C
- (nonnull RLMSectionedResults *) sectionedResultsUsingSortDescriptors: (nonnull NSArray<RLMSortDescriptor *> *)sortDescriptors keyBlock:(nonnull RLMSectionedResultsKeyBlock) keyBlock;
Swift
func sectionedResults(using sortDescriptors: [RLMSortDescriptor], keyBlock: @escaping RLMSectionedResultsKeyBlock) -> RLMSectionedResults
매개변수
sortDescriptors
정렬 기준이 되는
RLMSortDescriptor
의 배열입니다.keyBlock
Results collection의 각 요소에 대해 호출되는 콜백입니다. 이 콜백은 collection에 있는 요소의 섹션 키를 반환하는 것입니다.
반환 값
RLM 섹션 결과의 인스턴스입니다.
-
배열이 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 배열과 비동기적으로 호출된 다음, 배열의 객체, 결과에 포함된 객체 또는 배열의 객체 순서를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
차단이 처음 호출되면
changes
매개변수는nil
가 됩니다. 그 이후의 각 호출에 대해 배열에서 추가, 제거 또는 수정된 행에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 배열의 객체를 수정하지 않은 경우 블록은 전혀 호출되지 않습니다. 변경 사항이 보고되는 방법과UITableView
업데이트의 예에 대한 자세한 내용은RLMCollectionChange
문서를 참조하세요.오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상
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(RLMArray<Dog *> *dogs, RLMCollectionChange *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 addObject:dog]; }]; // end of run loop execution context
업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
-invalidate
을 호출합니다.경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.경고
이 메서드는 고정되지 않은 managed 배열에서만 호출할 수 있습니다.
선언
Objective-C
- (nonnull RLMNotificationToken *)addNotificationBlock: (nonnull void (^)(RLMArray<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block;
Swift
func addNotificationBlock(_ block: @escaping (RLMArray<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void) -> RLMNotificationToken
매개변수
block
배열이 변경될 때마다 호출되는 블록입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
-
배열이 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 배열과 비동기적으로 호출된 다음, 배열의 객체, 결과에 포함된 객체 또는 배열의 객체 순서를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
차단이 처음 호출되면
changes
매개변수는nil
가 됩니다. 그 이후의 각 호출에 대해 배열에서 추가, 제거 또는 수정된 행에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 배열의 객체를 수정하지 않은 경우 블록은 전혀 호출되지 않습니다. 변경 사항이 보고되는 방법과UITableView
업데이트의 예에 대한 자세한 내용은RLMCollectionChange
문서를 참조하세요.오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상
nil
입니다.알림은 지정된 대기열에 전달됩니다. 대기열이 차단되어 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다.
업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
-invalidate
을 호출합니다.경고
포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.경고
대기열은 직렬 대기열이어야 합니다.
선언
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMArray<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMArray<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, queue: dispatch_queue_t?) -> RLMNotificationToken
매개변수
block
변경이 발생할 때마다 호출되는 차단입니다.
queue
알림을 전달할 직렬 대기열입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
-
배열이 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 배열과 비동기적으로 호출된 다음, 배열의 객체, 결과에 포함된 객체 또는 배열의 객체 순서를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
차단이 처음 호출되면
changes
매개변수는nil
가 됩니다. 그 이후의 각 호출에 대해 배열에서 추가, 제거 또는 수정된 행에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 배열의 객체를 수정하지 않은 경우 블록은 전혀 호출되지 않습니다. 변경 사항이 보고되는 방법과UITableView
업데이트의 예에 대한 자세한 내용은RLMCollectionChange
문서를 참조하세요.오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상
nil
입니다.알림은 지정된 대기열에 전달됩니다. 대기열이 차단되어 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다.
업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
-invalidate
을 호출합니다.경고
포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.경고
대기열은 직렬 대기열이어야 합니다.
선언
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMArray<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block keyPaths:(nullable NSArray<NSString *> *)keyPaths queue:(nullable dispatch_queue_t)queue;
Swift
func addNotificationBlock(_ block: @escaping (RLMArray<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?, queue: dispatch_queue_t?) -> RLMNotificationToken
매개변수
block
변경이 발생할 때마다 호출되는 차단입니다.
keyPaths
이러한 키 경로에서 발생하는 변경에 대해 차단이 호출됩니다. 키 경로가 제공되지 않으면 모든 속성 키 경로에 대해 알림이 전달됩니다.
queue
알림을 전달할 직렬 대기열입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
-
배열이 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 배열과 비동기적으로 호출된 다음, 배열의 객체, 결과에 포함된 객체 또는 배열의 객체 순서를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
차단이 처음 호출되면
changes
매개변수는nil
가 됩니다. 그 이후의 각 호출에 대해 배열에서 추가, 제거 또는 수정된 행에 대한 정보가 포함됩니다. 쓰기 트랜잭션(write transaction)이 배열의 객체를 수정하지 않은 경우 블록은 전혀 호출되지 않습니다. 변경 사항이 보고되는 방법과UITableView
업데이트의 예에 대한 자세한 내용은RLMCollectionChange
문서를 참조하세요.오류 매개변수는 이전 버전과의 호환성을 위해서만 존재하며 항상
nil
입니다.알림은 표준 이벤트 루프를 통해 전달되므로 다른 활동으로 이벤트 루프가 차단된 동안에는 전달할 수 없습니다. 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 결과에 대한 알림이 포함될 수 있습니다. 예를 들어 다음 코드는 알림 차단을 추가한 직후 쓰기 트랜잭션(write transaction)을 수행하므로 초기 알림이 먼저 전달될 기회가 없습니다. 결과적으로 초기 알림에는 쓰기 트랜잭션(write transaction) 후 Realm의 상태가 반영됩니다.
업데이트를 해당 블록에 계속 전송하려면 반환된 토큰을 오랫동안 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
-invalidate
을 호출합니다.경고
포함하는 Realm이 읽기 전용이거나 동결된 경우에는 이 메서드를 호출할 수 없습니다.경고
대기열은 직렬 대기열이어야 합니다.
선언
Objective-C
- (nonnull RLMNotificationToken *) addNotificationBlock:(nonnull void (^)(RLMArray<RLMObjectType> *_Nullable, RLMCollectionChange *_Nullable, NSError *_Nullable))block keyPaths:(nullable NSArray<NSString *> *)keyPaths;
Swift
func addNotificationBlock(_ block: @escaping (RLMArray<RLMObjectType>?, RLMCollectionChange?, (any Error)?) -> Void, keyPaths: [String]?) -> RLMNotificationToken
매개변수
block
변경이 발생할 때마다 호출되는 차단입니다.
keyPaths
이러한 키 경로에서 발생하는 변경에 대해 차단이 호출됩니다. 키 경로가 제공되지 않으면 모든 속성 키 경로에 대해 알림이 전달됩니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
-
배열에 있는 모든 객체 중 지정된 속성의 최소값(가장 낮은 값)을 반환합니다.
NSNumber *min = [object.arrayProperty minOfProperty:@"age"];
경고
RLMObject
,RLMArray
및NSData
속성에서는 이 메서드를 사용할 수 없습니다.선언
Objective-C
- (nullable id)minOfProperty:(nonnull NSString *)property;
Swift
func min(ofProperty property: String) -> Any?
매개변수
property
The property whose minimum value is desired.
int
,float
,double
및NSDate
유형의 속성만 지원됩니다.반환 값
속성의 최소값이거나 배열이 비어 있는 경우
nil
입니다. -
배열에 있는 모든 객체 중 지정된 속성의 최대값(가장 높은 값)을 반환합니다.
NSNumber *max = [object.arrayProperty maxOfProperty:@"age"];
경고
RLMObject
,RLMArray
및NSData
속성에서는 이 메서드를 사용할 수 없습니다.선언
Objective-C
- (nullable id)maxOfProperty:(nonnull NSString *)property;
Swift
func max(ofProperty property: String) -> Any?
매개변수
property
The property whose maximum value is desired.
int
,float
,double
및NSDate
유형의 속성만 지원됩니다.반환 값
속성의 최대값이거나 배열이 비어 있는 경우
nil
입니다. -
배열의 모든 객체에 대해 지정된 속성 값의 합계를 반환합니다.
NSNumber *sum = [object.arrayProperty sumOfProperty:@"age"];
경고
RLMObject
,RLMArray
및NSData
속성에서는 이 메서드를 사용할 수 없습니다.선언
Objective-C
- (nonnull NSNumber *)sumOfProperty:(nonnull NSString *)property;
Swift
func sum(ofProperty property: String) -> NSNumber
매개변수
property
값을 합산해야 하는 속성입니다.
int
,float
및double
유형의 속성만 지원됩니다.반환 값
지정된 속성의 합계입니다.
-
배열의 객체에 대한 지정된 속성의 평균값을 반환합니다.
NSNumber *average = [object.arrayProperty averageOfProperty:@"age"];
경고
RLMObject
,RLMArray
및NSData
속성에서는 이 메서드를 사용할 수 없습니다.선언
Objective-C
- (nullable NSNumber *)averageOfProperty:(nonnull NSString *)property;
Swift
func average(ofProperty property: String) -> NSNumber?
매개변수
property
평균값을 계산해야 하는 속성입니다.
int
,float
및double
유형의 속성만 지원됩니다.반환 값
지정된 속성의 평균값이거나 배열이 비어 있는 경우
nil
입니다.
-
이 배열의 동결(불변) 스냅샷을 반환합니다.
The frozen copy is an immutable array which contains the same data as this array currently contains, but will not update when writes are made to the containing Realm. 라이브 배열과 달리 동결 배열은 모든 스레드에서 액세스할 수 있습니다.
경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.경고
이 메서드는 managed 배열에서만 호출할 수 있습니다.경고
Realm에서 쓰기 트랜잭션(write transaction)을 수행하는 동안 동결된 배열을 오랫동안 유지하면 Realm 파일 크기가 커질 수 있습니다. 자세한 내용은RLMRealmConfiguration.maximumNumberOfActiveVersions
를 참조하세요.선언
Objective-C
- (nonnull instancetype)freeze;
Swift
func freeze() -> Self
-
이 동결된 collection의 라이브 버전을 반환합니다.
이 메서드는 동일한 동결 컬렉션의 라이브 사본에 대한 참조를 확인합니다. 라이브 컬렉션에서 호출하면 자체를 반환합니다.
선언
Objective-C
- (nonnull instancetype)thaw;
Swift
func thaw() -> Self
-
사용할 수 없음
RLMArray를 직접 만들 수 없습니다.
-[RLMArray init]
RLMArray
을 직접 만들 수 없기 때문에 사용할 수 없습니다.RLMArray
의RLMObject
속성은 액세스 시 느리게 생성됩니다.선언
Objective-C
- (nonnull instancetype)init;
-
사용할 수 없음
RLMArray를 직접 만들 수 없습니다.
+[RLMArray new]
RLMArray
을 직접 만들 수 없기 때문에 사용할 수 없습니다.RLMArray
의RLMObject
속성은 액세스 시 느리게 생성됩니다.선언
Objective-C
+ (nonnull instancetype)new;