구조
다음 구조는 전 세계적으로 사용할 수 있습니다.
-
이 구조체는 다음을 통해 Swift에서 RLMObject에 대한 시퀀스 스타일 열거를 활성화합니다.
더 보기RLMCollection.makeIterator
선언
Swift
public struct RLMCollectionIterator : IteratorProtocol
-
이 구조체는 다음을 통해 Swift에서 RLMDictionary에 대한 시퀀스 스타일 열거를 활성화합니다.
더 보기RLMDictionary.makeIterator
선언
Swift
public struct RLMDictionaryIterator : IteratorProtocol
-
Realm
인스턴스('Realm'이라고도 함)는 Realm 데이터베이스를 나타냅니다.Realm은 디스크(
init(path:)
참조) 또는 메모리(Configuration
참조)에 저장할 수 있습니다.Realm
즉, 동일한 경로나 식별자를 사용하여 동등한Realm
객체를 구성하면 오버헤드가 제한적으로 발생합니다.특히
Realm
인스턴스가 제거되었는지 확인하려면(예를 들어, Realm을 열고 일부 속성을 확인한 다음 Realm 파일을 삭제했다가 다시 열려면 Realm을 사용하는 코드를 배치합니다.autoreleasepool {}
내에 넣고 이에 대한 다른 강력한 참조가 없는지 확인합니다.경고
경고 고정되지 않은RLMRealm
인스턴스는 스레드에 한정되어 있으며 스레드 또는 디스패치 대기열 간에 공유할 수 없습니다. 이 작업을 수행하려고 하면 예외가 발생합니다. Realm 과 상호 작용 하려는 각 스레드 또는 대기열에서RLMRealm
인스턴스 를 가져와야 합니다. Realm은RLMRealm
인스턴스 가져올 때 대기열을 명시적으로 전달하여 열리는 스레드가 아닌 디스패치 대기열로 제한할 수 있습니다. 이 작업을 수행하지 않으면 대기열이 항상 동일한 스레드에서 실행 되지 않으므로 여러 블록에서 동일한 인스턴스 를 동일한 대기열에 디스패치하여 사용하려고 하면 실패할 수 있습니다.선언
Swift
@frozen public struct Realm
extension Realm: Equatable
-
LinkingObjects
자동 업데이트 container 유형입니다. 속성 관계를 통해 소유 모델 객체에 연결된 0개 이상의 객체를 나타냅니다.LinkingObjects
List<Element>
및Results<Element>
와 동일한 조건자를 사용하여 쿼리할 수 있습니다.LinkingObjects
현재 스레드에서 쓰기 트랜잭션(write transaction)을 포함하여 항상 현재 스레드에서 Realm의 현재 상태를 반영합니다. 한 가지 예외는for...in
열거형을 사용하는 경우로, 이는 열거형이 시작될 때 존재했던 연결 객체 중 일부가 삭제되거나 수정되어 열거형 중에 대상 객체에 더 이상 연결되지 않는 경우에도 항상 열거형을 열거합니다. .
더 보기LinkingObjects
Object
모델에서만 속성 으로 사용할 수 있습니다. 이 유형의 속성은let
(으)로 선언해야 하며dynamic
일 수 없습니다.선언
Swift
@frozen public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
extension LinkingObjects: RealmSubscribable
extension LinkingObjects: RealmCollection
-
Results
객체 쿼리에서 반환되는 Realm의 자동 업데이트 container 유형입니다.Results
List<Element>
와(과) 동일한 조건자를 사용하여 쿼리할 수 있으며, 쿼리를 연결하여 쿼리 결과를 추가로 필터링할 수 있습니다.Results
현재 스레드에서 쓰기 트랜잭션(write transaction)을 포함하여 항상 현재 스레드에서 Realm의 현재 상태를 반영합니다. 한 가지 예외는for...in
열거를 사용하는 경우이며, 이는 열거 중에 필터에 의해 제외되도록 일부 객체가 삭제되거나 수정되더라도 열거가 시작될 때 쿼리와 일치하는 객체를 항상 열거합니다.Results
처음 액세스할 때 느리게 평가됩니다. 쿼리 결과가 요청될 때만 쿼리를 실행합니다. 즉, 여러 개의 임시Results
를 연결하여 데이터를 정렬하고 필터링해도 중간 상태를 처리하는 불필요한 작업을 수행하지 않습니다.결과가 평가되거나 알림 차단이 추가되면 결과가 최신 상태로 유지되며 가능하면 백그라운드 스레드에서 최신 상태로 유지하기 위한 작업이 수행됩니다.
결과 인스턴스는 직접 인스턴스화할 수 없습니다.
더 보기선언
Swift
@frozen public struct Results<Element> : Equatable where Element : RealmCollectionValue
extension Results: RealmSubscribable
extension Results: RealmCollection
extension Results: Encodable where Element: Encodable
-
유형이 지워진
RealmCollection
입니다.
더 보기RealmCollection
의 인스턴스는 동일한Element
유형을 가진 불투명한 기본 컬렉션 으로 작업을 전달합니다.선언
Swift
public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
extension AnyRealmCollection: RealmSubscribable
-
Realm 알림을 래핑하는 구독입니다.
더 보기선언
Swift
@available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *) @frozen public struct ObservationSubscription : Subscription
-
Realm AsyncOpenTask를 래핑하는 구독입니다.
더 보기선언
Swift
@available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *) @frozen public struct AsyncOpenSubscription : Subscription
-
지도에서 요소의 오프셋을 보유하는 컨테이너 유형입니다.
더 보기선언
Swift
public struct MapIndex
-
지도에 단일 키-값 항목을 보관하기 위한 컨테이너입니다. 이는 튜플이 일반적인 인수로 표현될 수 없는 경우에 사용됩니다.
더 보기선언
Swift
public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
-
Migration
인스턴스는 스키마 마이그레이션을 용이하게 하기 위한 정보를 캡슐화합니다.Realm 버전을 업데이트할 때 인스턴스
더 보기Migration
가 사용자 정의MigrationBlock
블록으로 전달됩니다. 이 인스턴스는 이전 및 새 데이터베이스 스키마, Realm의 객체에 대한 액세스를 제공하고 마이그레이션 중에 Realm을 수정하는 기능을 제공합니다.선언
Swift
@frozen public struct Migration
-
선언
Swift
@frozen public struct PropertyChange
-
이 클래스는 Realm 모델 객체 스키마를 나타냅니다.
Realm을 사용할 때
ObjectSchema
인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.객체 스키마는 코어 데이터베이스의 테이블에 매핑됩니다.
더 보기선언
Swift
@frozen public struct ObjectSchema : CustomStringConvertible
extension ObjectSchema: Equatable
-
Property
인스턴스는 객체 스키마의 컨텍스트에서 Realm이 managed하는 속성을 나타냅니다. 이러한 속성은 Realm 파일에 유지되거나 Realm의 다른 데이터에서 계산될 수 있습니다.Realm을 사용하는 경우 속성 인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.
속성 인스턴스는 코어 데이터베이스의 열에 매핑됩니다.
더 보기선언
Swift
@frozen public struct Property : CustomStringConvertible
extension Property: Equatable
-
더 보기RealmCollection
인스턴스의 반복자(iterator)입니다.선언
Swift
@frozen public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
-
더 보기RealmKeyedCollection
인스턴스의 반복자(iterator)입니다.선언
Swift
@frozen public struct RLMMapIterator<Element> : IteratorProtocol where Element : _RealmMapValue
-
Schema
인스턴스는 Realm에서 관리하는 모델 객체 스키마 컬렉션을 나타냅니다.Realm을 사용할 때
Schema
인스턴스를 사용하면 마이그레이션을 수행하고 데이터베이스의 스키마를 인트로스펙션할 수 있습니다.스키마는 코어 데이터베이스의 collection 테이블에 매핑됩니다.
더 보기선언
Swift
@frozen public struct Schema : CustomStringConvertible
extension Schema: Equatable
-
더 보기SortDescriptor
는sorted(sortDescriptors:)
와 함께 사용할 키 경로와 정렬 순서를 저장합니다.NSSortDescriptor
와(과) 비슷하지만 Realm의 쿼리 엔진에서 효율적으로 실행할 수 있는 기능의 하위 집합만 지원합니다.선언
Swift
@frozen public struct SortDescriptor
extension SortDescriptor: CustomStringConvertible
extension SortDescriptor: Equatable
extension SortDescriptor: ExpressibleByStringLiteral
-
관찰 가능 객체를 인스턴스화하는 속성 래퍼 유형입니다.
@StateRealmObject
속성을 속성 선언에 적용하고 doc://com.apple.documentation/documentation 을 준수하는 초기 값을 제공하여SwiftUI/View
,SwiftUI/App
또는SwiftUI/Scene
에서 상태 Realm 객체를 생성합니다. /Combine/ObservableObject 프로토콜:@StateRealmObject var model = DataModel()
SwiftUI는 객체를 선언하는 구조체의 각 인스턴스에 대해 객체의 새 인스턴스를 한 번만 생성합니다. 관찰 가능한 영역 객체의 게시된 속성이 변경되면 SwiftUI는 해당 속성에 의존하는 모든 뷰의 부분을 업데이트합니다. 관리되지 않는 경우 속성을 객체 자체에서 읽고, 그렇지 않으면 기본 Realm에서 읽습니다. 값을 변경하면 뷰가 비동기적으로 업데이트됩니다.
Text(model.title) // Updates the view any time `title` changes.
상태 객체를
SwiftUI/ObservedRealmObject
속성이 있는 속성에 전달할 수 있습니다.$
연산자를 사용하여 상태 객체의 속성 중 하나에 대한SwiftUI/Binding
을(를) 가져옵니다. 객체의 속성 중 하나에 대한 양방향 연결을 생성하려는 경우 바인딩을 사용합니다. 예를 들어SwiftUI/Toggle
가 모델에 저장된isEnabled
라는 부울 값을 제어하도록 할 수 있습니다.Toggle("Enabled", isOn: $model.isEnabled)
이렇게 하면 수정된
더 보기isEnabled
속성이model
객체의 Realm에 기록됩니다.선언
Swift
@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) @propertyWrapper public struct StateRealmObject<T> : DynamicProperty where T : RealmSubscribable, T : ThreadConfined, T : Equatable
-
Realm 에서 결과를 검색하는 속성 래퍼 유형입니다.
결과는 환경 값
더 보기EnvironmentValues/realmConfiguration
에서 제공하는 영역 구성을 사용합니다.선언
Swift
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) @propertyWrapper public struct ObservedResults<ResultType> : DynamicProperty, BoundCollection where ResultType : RealmSwiftObject, ResultType : ObjectKeyIdentifiable
-
선언
Swift
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) @propertyWrapper public struct ObservedRealmObject<ObjectType> : DynamicProperty where ObjectType : ObservableObject, ObjectType : RealmSubscribable, ObjectType : ThreadConfined, ObjectType : Equatable
-
더 보기SyncConfiguration
는 MongoDB Realm 과 동기화 하려는 Realm의 구성 매개변수를 나타냅니다.선언
Swift
@frozen public struct SyncConfiguration
-
제공된 이름과 인수를 사용하여 MongoDB Realm 함수를 호출할 수 있는 인터페이스를 제공하는 구조체입니다.
user.functions.sum([1, 2, 3, 4, 5]) { sum, error in guard case let .int64(value) = sum else { print(error?.localizedDescription) } assert(value == 15) }
동적 멤버 이름(위 예제에서는
더 보기sum
)은 함수 이름과 직접 연결됩니다. 첫 번째 인수는 함수에 제공될 인수의BSONArray
입니다. 두 번째이자 마지막 인수는 함수 호출이 완료될 때 호출하는 완료 핸들러입니다. 이 핸들러는 메인이 아닌 글로벌DispatchQueue
에서 실행됩니다.선언
Swift
@dynamicMemberLookup @frozen public struct Functions
-
스레드에 한정된 객체에 대한 스레드 세이프 참고를 포함하는 스레드 간에 전달되기 위한 객체입니다.
다른 스레드에서 대상 Realm의 스레드 세이프 참고를 확인하려면
Realm.resolve(_:)
으로 전달합니다.경고
ThreadSafeReference
객체는 최대 한 번만 해석되어야 합니다.ThreadSafeReference
확인에 실패하면 참고 할당이 해제될 때까지 Realm의 소스 버전이 고정됩니다.참고
소스 Realm의 버전에 대한 데이터는 모든 참고가 확인되거나 할당 해제될 때까지 유지되므로 수명이 짧은
ThreadSafeReference
을(를) 선호합니다.~를 참조하세요.
~를 참조하세요.
선언
Swift
@frozen public struct ThreadSafeReference<Confined> where Confined : ThreadConfined