인터페이스 IRealmCollection<T>
Realm에서 반환하는 모든 collection의 기반이 되는 반복 가능하고 정렬 가능한 collection입니다.
상속된 멤버
네임스페이스: Realms
어셈블리: Realm.exe
구문
public interface IRealmCollection<out T> : IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
유형 매개변수
이름 | 설명 |
---|---|
t | collection에 포함된 값의 유형입니다. |
속성
| 이 페이지 편집 소스 보기IsFrozen
이 collection이 동결되었는지 여부를 나타내는 값을 가져옵니다. 동결 collection은 변경할 수 없으며 모든 스레드에서 액세스할 수 있습니다. 동결된 collection에서 읽은 객체도 동결됩니다.
선언
bool IsFrozen { get; }
속성 값
유형 | 설명 |
---|---|
부울 |
|
IsValid
이 컬렉션이 여전히 사용 가능한지 여부를 나타내는 값을 가져옵니다.
선언
bool IsValid { get; }
속성 값
유형 | 설명 |
---|---|
부울 |
|
객체 스키마
collection에 포함된 IRealmObject, IEmbeddedObject 또는 IAsymmetricObject 인스턴스의 속성을 설명하는 ObjectSchema 를 가져옵니다. collection에 기본 값이 포함된 경우 ObjectSchema 는 null
이(가) 됩니다.
선언
ObjectSchema? ObjectSchema { get; }
속성 값
유형 | 설명 |
---|---|
객체 스키마 | collection에 포함된 객체의 스키마입니다. |
Realm
이 collection이 속한 Realm 인스턴스를 가져옵니다.
선언
Realm Realm { get; }
속성 값
유형 | 설명 |
---|---|
Realm | 이 collection이 속한 Realm 인스턴스입니다. |
방법
| 이 페이지 편집 소스 보기포함(객체?)
요소가 IRealmCollection<T> 에 있는지 여부를 확인합니다.
선언
bool Contains(object? item)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | item | IRealmCollection<T> 에서 찾을 객체입니다. |
반환
유형 | 설명 |
---|---|
부울 | 항목이 IRealmCollection<T> 에서 발견되면 true 이고, 그렇지 않으면 false 입니다. 그렇지 않으면 false입니다. |
동결()
이 컬렉션의 동결된 스냅샷을 생성합니다. 동결된 사본은 모든 스레드에서 읽고 쿼리할 수 있습니다.
collection을 동결하면 자체 라이프사이클이 있는 동결된 Realm도 생성되지만, 원래 collection을 생성한 라이브 Realm이 완전히 닫힌 경우(예: 모든 스레드의 모든 인스턴스가 닫힙니다), 동결된 Realm과 collection도 닫힙니다. 동결된 collection은 정상적으로 쿼리할 수 있지만 어떤 방식으로든 변경하거나 리스너를 등록하려고 하면 RealmFrozenException 이 발생합니다. 참고: 버전이 다른 많은 수의 동결된 객체를 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 MaxNumberOfActiveVersions 를 설정할 수 있습니다.선언
IRealmCollection<out T> Freeze()
반환
유형 | 설명 |
---|---|
IRealmCollection<T> | 이 컬렉션의 동결된 사본입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기IndexOf(객체?)
지정된 객체를 검색하고 전체 IRealmCollection<T> 내에서 처음 발견된 인덱스(0부터 시작)를 반환합니다.
선언
int IndexOf(object? item)
매개변수
유형 | 이름 | 설명 |
---|---|---|
객체 | item | IRealmCollection<T> 에서 찾을 객체입니다. |
반환
유형 | 설명 |
---|---|
int | 전체 IRealmCollection<T> 내에서 처음 발견된 항목의 인덱스(있는 경우)의 인덱스(0부터 시작), 그렇지 않으면 -1입니다. |
SubscribeForNotifications(NotificationCallbackDelegate<T>, KeyPathsCollection?)
이 IRealmCollection<T> 이 변경될 때마다 호출될 콜백을 등록합니다.
선언
IDisposable SubscribeForNotifications(NotificationCallbackDelegate<out T> callback, KeyPathsCollection? keyPathCollection = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
NotificationCallbackDelegate<T> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
KeyPathsCollection | keyPathCollection | 알림을 발생시켜야 하는 속성 변경 사항을 나타내는 키 경로의 선택적 컬렉션입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
비고
콜백은 초기 IRealmCollection<T> 와 함께 비동기적으로 호출된 다음 collection의 객체 또는 collection에 있는 객체를 변경하는 각 쓰기 트랜잭션 (write transaction) 후에 다시 호출됩니다. 초기 결과와 함께 콜백이 처음 호출될 때 changes
매개변수는 null
이 됩니다. 그 이후의 각 호출에 대해 결과에서 추가, 제거 또는 수정된 행에 대한 정보가 포함됩니다.
컬렉션 에 Realm 영역 가 포함된 경우 어떤 속성 변경 사항이 알림을 발생시켜야 하는지를 나타내는 선택적 KeyPathsCollection 을 전달할 수 있습니다. If no KeyPathsCollection is passed, Full will be used, so changes to all top-level properties and 4 nested levels will raise a notification. 빌드 방법에 대한 자세한 내용은 KeyPathsCollection 을 참조하세요.
쓰기 트랜잭션(write transaction)이 이 IRealmCollection<T> 의 객체를 수정하지 않으면 콜백이 전혀 호출되지 않습니다.
차단이 호출되는 시점에 IRealmCollection<T> 객체는 완전히 평가되고 최신 상태로 유지되며, 동일한 스레드에서 쓰기 트랜잭션(write transaction)을 수행하거나 명시적으로 refresh() 를 호출하지 않는 한 객체에 액세스합니다. 차단 작업을 수행하지 않습니다.
알림은 표준 이벤트 루프를 통해 전달되므로 이벤트 루프가 다른 활동으로 차단된 동안에는 전달할 수 없습니다. 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 collection에 대한 알림이 포함될 수 있습니다.