클래스
다음 클래스는 전 세계적으로 사용할 수 있습니다.
-
List
Realm에서 to-many 관계를 정의하는 데 사용되는 컨테이너 유형입니다.Swift의
Array
처럼List
도 저장하는 유형에 따라 매개변수화되는 일반 유형입니다. 이 클래스는Object
서브클래스이거나 다음 유형 중 하나일 수 있습니다:Bool
,Int
,Int8
,Int16
,Int32
,Int64
,Float
,Double
,String
,Data
,Date
,Decimal128
및ObjectId
(및 해당 옵션 버전)Swift의 네이티브 컬렉션과 달리
List
는 참조 유형이며 collection을 managed하는 Realm이 읽기 전용으로 열린 경우에만 변경되지 않습니다.목록은
더 보기Results<Element>
과 동일한 조건자를 사용하여 필터링하고 정렬할 수 있습니다.선언
Swift
public final class List<Element> : RLMSwiftCollectionBase, RealmCollectionImpl where Element : RealmCollectionValue
extension List: ObservableObject, RealmSubscribable
extension List: MutableCollection
extension List: Decodable where Element: Decodable
extension List: Encodable where Element: Encodable
-
MutableSet
은(는) 고유한 값을 객체로 사용하는 to-many 관계를 정의하는 데 사용되는 Realm의 container 유형입니다.Swift의
Set
처럼MutableSet
도 저장하는 유형에 따라 매개변수화되는 일반 유형입니다. 이 클래스는Object
서브클래스이거나 다음 유형 중 하나일 수 있습니다:Bool
,Int
,Int8
,Int16
,Int32
,Int64
,Float
,Double
,String
,Data
,Date
,Decimal128
및ObjectId
(및 해당 옵션 버전)Swift의 네이티브 컬렉션과 달리
MutableSet
는 참조 유형이며 collection을 managed하는 Realm이 읽기 전용으로 열린 경우에만 변경되지 않습니다.MutableSet는
더 보기Results<Element>
과 동일한 조건자를 사용하여 필터링하고 정렬할 수 있습니다.선언
Swift
public final class MutableSet<Element> : RLMSwiftCollectionBase, RealmCollectionImpl where Element : RealmCollectionValue
extension MutableSet: ObservableObject, RealmSubscribable
extension MutableSet: Decodable where Element: Decodable
extension MutableSet: Encodable where Element: Encodable
-
맵은 지원되는 Realm 유형을 저장하는 데 사용되는 키-값 저장 container입니다.
지도는 저장하는 유형에 따라 매개변수화된 일반 유형입니다. 이는 Object 하위 클래스이거나 다음 유형 중 하나일 수 있습니다: Bool, Int, Int8, Int16, Int32, Int64, Float, Double, String, Data, Date, Decimal128, ObjectId (및 해당 옵션 버전)
지도는 키로
String
만 지원합니다. Realm에서는 사전 키 내에서.
또는$
문자를 사용할 수 없습니다.Swift의 네이티브 collection과 달리
Map
collection은 참고 유형이며 collection을 managed하는 Realm이 읽기 전용으로 열린 경우에만 변경되지 않습니다.맵은
더 보기Results<Value>
과 동일한 조건자를 사용하여 필터링 및 정렬할 수 있습니다.선언
Swift
public final class Map<Key, Value> : RLMSwiftCollectionBase where Key : _MapKey, Value : RealmCollectionValue
extension Map: ObservableObject, RealmSubscribable
extension Map: Sequence
extension Map: RealmKeyedCollection
extension Map: Decodable where Key: Decodable, Value: Decodable
extension Map: Encodable where Key: Encodable, Value: Encodable
-
128비트 IEEE 754-2008 10진수 부동 소수점 숫자입니다.
이 유형은 Swift의 내장 Decimal 유형과 비슷하지만 비트를 다르게 할당하므로 표현 가능 범위가 다릅니다. (NS)Decimal은 최대 38자리의 유효 숫자와 -128부터 127까지의 지수를 저장하는 반면, 이 유형은 최대 34자리의 유효 숫자와 지수를 -6143부터 6144까지 저장합니다.
더 보기선언
Swift
@objc(RealmSwiftDecimal128) public final class Decimal128 : RLMDecimal128, Decodable, @unchecked Sendable
extension Decimal128: Encodable
extension Decimal128: ExpressibleByIntegerLiteral
extension Decimal128: ExpressibleByFloatLiteral
extension Decimal128: ExpressibleByStringLiteral
extension Decimal128: Comparable
extension Decimal128: Numeric
extension Decimal128: _QueryNumeric
extension Decimal128: _RealmCollectionValueInsideOptional
extension Decimal128: MinMaxType
extension Decimal128: AddableType
extension Decimal128: SortableType
-
12바이트(대부분)의 고유 ObjectId입니다.
ObjectId는 GUID 또는 UUID와 유사하며, 중앙 집중식 ID 생성기 없이도 객체를 고유하게 식별하는 데 사용할 수 있습니다. ObjectID는 다음으로 구성됩니다.
- 유닉스 시간 이후 ObjectId의 생성 시간을 초 단위로 측정하는 4바이트 타임스탬프입니다.
- 5바이트 임의 값
- 임의의 값으로 초기화된 3바이트 카운터입니다.
ObjectId는 빠르게 생성하기 위한 것입니다. ObjectId 필드를 기준으로 정렬하면 일반적으로 객체가 생성 순서대로 정렬됩니다.
더 보기선언
Swift
@objc(RealmSwiftObjectId) public final class ObjectId : RLMObjectId, Decodable, @unchecked Sendable
extension ObjectId: Encodable
extension ObjectId: Comparable
extension ObjectId: _RealmCollectionValueInsideOptional
-
RealmOptional
인스턴스는Int
,Float
,Double
및Bool
와 같이 Swift에서@objc
로 직접 선언할 수 없는 유형에 대한 선택적 값을 나타냅니다.
더 보기RealmOptional
인스턴스에 저장된 기본 값을 변경하려면 인스턴스의value
속성을 변경합니다.선언
Swift
@available(*, deprecated, renamed: "RealmProperty", message: "RealmOptional<T> has been deprecated, use RealmProperty<T?> instead.") public final class RealmOptional<Value> : RLMSwiftValueStorage where Value : RealmOptionalType
extension RealmOptional: Equatable where Value: Equatable
extension RealmOptional: Codable where Value: Codable, Value: _RealmSchemaDiscoverable
-
Projection
원래 RealmObject
또는EmbeddedObject
의 경량 모델입니다.Projection
을(를) 뷰 모델로 사용하여 상용구를 최소화할 수 있습니다.사용 예시:
public class Person: Object { @Persisted var firstName = "" @Persisted var lastName = "" @Persisted var address: Address? @Persisted var friends: List<Person> @Persisted var reviews: List<String> } public class Address: EmbeddedObject { @Persisted var city: String = "" @Persisted var country = "" } class PersonProjection: Projection<Person> { @Projected(\Person.firstName) var firstName @Projected(\Person.lastName.localizedUppercase) var lastNameCaps @Projected(\Person.address.city) var homeCity @Projected(\Person.friends.projectTo.firstName) var friendsFirstName: ProjectedCollection<String> }
### 지원되는 속성 유형
프로젝션은 여러 가지 방법으로 원래
@Persisted
속성을 변환할 수 있습니다.Passthrough
-Projection
의 속성은 원본 객체와 동일한 이름 및 유형을 갖습니다.PersonProjection.firstName
을(를) 참조하세요.Rename
- 프로젝션의 속성은 새 이름만 포함된 원본 객체와 동일한 유형을 갖습니다.Keypath resolution
- 프로젝션된Object
의 특정 속성에 액세스할 수 있습니다.PersonProjection.lastNameCaps
및PersonProjection.homeCity
를 참조하세요.Collection mapping
-List
MutableSet
또는Object
의EmbeddedObject
및 는 기본 값의 collection으로 프로젝션될 수 있습니다.PersonProjection.friendsFirstName
를 참조하세요.Exclusion
- 프로젝션 모델에 정의되지 않은 원본 Realm 객체의 모든 속성은 프로젝션에서 제외됩니다. 해당 속성에 발생한 변경 사항은Projection
에 대한 변경 알림을 trigger하지 않습니다. 여전히 원본Object
또는EmbeddedObject
에 액세스하고 직접 알림을 관찰할 수 있습니다.
참고
즉, 각@Persisted
속성은 동일한 프로젝션 클래스에서 서로 다른 방식으로@Projected
수 있습니다. 각Object
또는EmbeddedObject
는 동일하거나 다른 클래스의 여러 프로젝션을 한 번에 가질 수 있습니다.쿼리하기
Realm의
objects(_:)
또는 프로젝션 클래스의init(projecting:)
를 호출하여 Realm에서 특정 유형의 모든 프로젝션을 조회할 수 있습니다.
더 보기let projections = realm.object(PersonProjection.self) let personObject = realm.create(Person.self) let singleProjection = PersonProjection(projecting: personObject)
선언
Swift
open class Projection<Root> : RealmCollectionValue, ProjectionObservable where Root : RLMObjectBase, Root : RealmCollectionValue, Root : ThreadConfined
extension Projection: KeypathSortable
extension Projection: ThreadConfined where Root: ThreadConfined
extension Projection: ObservableObject, RealmSubscribable where Root: ThreadConfined
-
RealmProperty
인스턴스는 지원되는 유형에 대한 다형성 값을 나타냅니다.RealmProperty
인스턴스에 저장된 기본 값을 변경하려면 인스턴스의value
속성을 변경합니다.참고
RealmProperty
은(는) Realm 객체에서@objc dynamic
으)로 선언해서는 안 됩니다. 대신let
를 사용합니다.선언
Swift
public final class RealmProperty<Value> : RLMSwiftValueStorage where Value : RealmPropertyType
extension RealmProperty: Equatable where Value: Equatable
extension RealmProperty: Codable where Value: Codable
-
스레드 간에 전달될 수 있는 속성 래퍼 유형입니다.
@ThreadSafe
속성에는 기본 래핑된 값에 대한 스레드 안전 참고가 포함되어 있습니다. 이 참고는 래핑된 값에 액세스되는 스레드로 확인됩니다. 속성에 액세스할 때마다 새로운 스레드로부터 안전 참고가 생성됩니다.경고
이 속성 래퍼는 수명이 긴 객체의 속성에 사용하면 안 됩니다.
@ThreadSafe
속성에는 사용 중인 Realm의 소스 버전을 고정할 수 있는ThreadSafeReference
이(가) 포함되어 있습니다. 즉, 이 속성 래퍼는 비동기적으로 전달된 블록에 캡처되는 함수 인수와 로컬 변수에 더 적합합니다 .~를 참조하세요.
~를 참조하세요.
선언
Swift
@propertyWrapper public final class ThreadSafe<T> where T : ThreadConfined
extension ThreadSafe: @unchecked Sendable