Map
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
맵은 지원되는 Realm 유형을 저장하는 데 사용되는 키-값 저장 container입니다.
지도는 저장하는 유형에 따라 매개변수화된 일반 유형입니다. 이는 Object 하위 클래스이거나 다음 유형 중 하나일 수 있습니다: Bool, Int, Int8, Int16, Int32, Int64, Float, Double, String, Data, Date, Decimal128, ObjectId (및 해당 옵션 버전)
참고
Object
를 제외한 위 유형의 선택 버전은 동기화되지 않은 Realm에서만 지원됩니다.
지도는 키로 String
만 지원합니다. Realm에서는 사전 키 내에서 .
또는 $
문자를 사용할 수 없습니다.
Swift의 네이티브 collection과 달리 Map
collection은 참고 유형이며 collection을 managed하는 Realm이 읽기 전용으로 열린 경우에만 변경되지 않습니다.
맵은 Results<Value>
과 동일한 조건자를 사용하여 필터링 및 정렬할 수 있습니다.
-
지도를 managed Realm이거나 지도가 관리되지 않는 경우
nil
입니다.선언
Swift
public var realm: Realm? { get }
-
지도에 더 이상 액세스할 수 없는지 여부를 나타냅니다.
선언
Swift
public var isInvalidated: Bool { get }
-
이 맵의 모든 키를 반환합니다.
선언
Swift
public var keys: [Key] { get }
-
이 맵의 모든 값을 반환합니다.
선언
Swift
public var values: [Value] { get }
-
Value
유형의 Realm 모델 객체를 보유하는Map
을 만듭니다.선언
Swift
public override init()
-
이 맵에 있는 키-값 쌍의 수를 반환합니다.
선언
Swift
@objc public var count: Int { get }
-
지정된 키에 대해 맵에 저장된 값을 업데이트하거나 키가 존재하지 않는 경우 새 키-값 쌍을 추가합니다.
참고
지도에 추가되는 값이 관리되지 않는 객체이고 지도가 managed 경우 관리되지 않는 객체는 Realm에 추가됩니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Swift
public func updateValue(_ value: Value, forKey key: Key)
매개변수
value
값의 키 경로 술어입니다.
forKey
정렬할 방향입니다.
-
결합 클로저를 사용하여 중복 키의 값을 결정하고, 지정된 사전을 이 맵에 병합합니다.
dictionary
에 이 지도에 이미 있는 키가 포함되어 있으면 현재 지도에 있는 값과 사전에 있는 값을 사용하여combine
가 호출됩니다. 클로저가 반환한 값은 해당 키의 맵에 저장됩니다.참고
지도에 추가되는 값이 관리되지 않는 객체이고 지도가 관리되는 경우 관리되지 않는 객체는 Realm에 추가됩니다.
경고
이 메소드는 쓰기 트랜잭션(write transaction) 중에 관리되는 맵에서만 호출할 수 있습니다.
선언
Swift
public func merge<S>(_ sequence: S, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows where S: Sequence, S.Element == (key: Key, value: Value)
매개변수
dictionary
이 지도에 병합할 딕셔너리입니다.
combine
중복 키에 대한 현재 값과 새 값을 사용하는 클로저입니다. 클로저는 최종 맵에 대해 원하는 값을 반환합니다.
-
결합 클로저를 사용하여 중복 키의 값을 결정하고, 지정된 맵을 이 맵에 병합합니다.
other
에 이 지도에 이미 있는 키가 포함되어 있으면 현재 지도에 있는 값과 다른 지도에 있는 값을 사용하여combine
가 호출됩니다. 클로저가 반환한 값은 해당 키의 맵에 저장됩니다.참고
지도에 추가되는 값이 관리되지 않는 객체이고 지도가 관리되는 경우 관리되지 않는 객체는 Realm에 추가됩니다.
경고
이 메소드는 쓰기 트랜잭션(write transaction) 중에 관리되는 맵에서만 호출할 수 있습니다.
선언
Swift
public func merge(_ other: Map<Key, Value>, uniquingKeysWith combine: (Value, Value) throws -> Value) rethrows
매개변수
other
이 지도에 병합할 지도입니다.
combine
중복 키에 대한 현재 값과 새 값을 사용하는 클로저입니다. 클로저는 최종 맵에 대해 원하는 값을 반환합니다.
-
키가 지도에 존재하는 경우에만 지정된 키와 관련 객체를 제거합니다. 키가 존재하지 않으면 맵이 수정되지 않습니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.선언
Swift
public func removeObject(for key: Key)
-
지도에서 모든 객체를 제거합니다. 객체는 해당 객체를 managed Realm에서 제거되지 않습니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.선언
Swift
public func removeAll()
-
주어진 키에 대한 값을 반환하거나, 할당에 아래 첨자를 사용하는 경우 키의 값을 설정합니다.
참고
참고: 지도에 추가되는 값이 관리되지 않는 객체이고 지도가 managed 경우 관리되지 않는 객체는 Realm에 추가됩니다.
참고
참고: 키에 할당되는 값이
nil
인 경우 해당 키가 맵에서 제거됩니다.경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Swift
public subscript(key: Key) -> Value? { get set }
매개변수
key
키입니다.
-
지정된 키가 지도에 있는 경우 해당 키에 대한
AnyObject
유형을 반환합니다.선언
Swift
@objc public func object(forKey key: AnyObject) -> AnyObject?
매개변수
key
값을 구하려는 속성의 키입니다.
-
지정된 키가 지도에 있는 경우 해당 키에 대한
Value
유형을 반환합니다.키-값 코딩을 사용할 때 키는 문자열이어야 합니다.
선언
Swift
@nonobjc public func value(forKey key: String) -> AnyObject?
매개변수
key
값을 구하려는 속성의 키입니다.
-
지정된 키가 지도에 있는 경우 해당 키에 대한
Value
유형을 반환합니다.선언
Swift
@nonobjc public func value(forKeyPath keyPath: String) -> AnyObject?
매개변수
keyPath
값을 구하려는 속성의 키입니다.
-
지정된 키-값 쌍을 맵에 추가하거나 지정된 키가 이미 존재하는 경우 업데이트합니다.
경고
이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.
선언
Swift
public func setValue(_ value: Any?, forKey key: String)
매개변수
value
객체 값입니다.
key
각 객체에 값을 설정해야 하는 속성의 이름입니다.
-
맵에 포함된 키-값 쌍이 지정된 조건자를 충족하는지 여부를 나타내는 부울 값을 반환합니다.
선언
Swift
public func contains(where predicate: @escaping (_ key: Key, _ value: Value) -> Bool) -> Bool
매개변수
where
지정된 맵의 키 쌍이 일치하는 항목을 나타내는지 테스트하는 클로저입니다.
-
지도에 있지만 정렬된 객체를 포함하는
Results
를 반환합니다.객체는 지정된 키 경로의 값을 기준으로 정렬됩니다. 예를 들어,
Student
의age
속성을 기준으로 가장 어린 것부터 가장 오래된 것까지 지도를 정렬하려면students.sorted(byKeyPath: "age", ascending: true)
를 호출할 수 있습니다.경고
사전은 부울,
Date
,NSDate
, 단일 및 배정밀도 부동 소수점, 정수, 문자열 유형의 속성을 통해서만 정렬할 수 있습니다.선언
Swift
public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Value>
매개변수
keyPath
정렬 기준이 되는 키 경로입니다.
ascending
정렬할 방향입니다.
-
지도에 있지만 정렬된 객체를 포함하는
Results
를 반환합니다.경고
지도는 부울,
Date
,NSDate
, 단일 및 배정밀도 부동 소수점, 정수, 문자열 유형의 속성을 통해서만 정렬할 수 있습니다.~를 참조하세요.
선언
Swift
public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Value> where S.Iterator.Element == SortDescriptor
-
collection의 모든 객체 중 지정된 속성의 최소값(최저)을 반환하거나 지도가 비어 있는 경우
nil
를 반환합니다.경고
유형이
MinMaxType
프로토콜을 준수하는 속성만 지정할 수 있습니다.선언
Swift
public func min<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : MinMaxType
매개변수
property
최소값을 원하는 속성의 이름입니다.
-
collection의 모든 객체 중 지정된 속성의 최대값(가장 높은 값)을 반환하거나, 지도가 비어 있는 경우
nil
를 반환합니다.경고
유형이
MinMaxType
프로토콜을 준수하는 속성만 지정할 수 있습니다.선언
Swift
public func max<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : MinMaxType
매개변수
property
최소값을 원하는 속성의 이름입니다.
-
collection에 있는 객체에 지정된 속성의 합계를 반환하거나 지도가 비어 있는 경우
nil
를 반환합니다.경고
AddableType
프로토콜을 준수하는 유형의 속성 이름만 사용할 수 있습니다.선언
Swift
public func sum<T>(ofProperty property: String) -> T where T : _HasPersistedType, T.PersistedType : AddableType
매개변수
property
합계를 계산할
AddableType
을(를) 준수하는 속성의 이름입니다. -
collection의 모든 객체에 대한 지정된 속성의 평균값을 반환하거나 map이 비어 있는 경우
nil
를 반환합니다.경고
유형이
AddableType
프로토콜을 준수하는 속성만 지정할 수 있습니다.선언
Swift
public func average<T>(ofProperty property: String) -> T? where T : _HasPersistedType, T.PersistedType : AddableType
매개변수
property
값을 합산해야 하는 속성의 이름입니다.
-
지도가 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 맵과 비동기적으로 호출된 다음, 맵의 키나 값을 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
블록에 전달되는
change
매개변수는 각 쓰기 트랜잭션(write transaction) 중에 추가, 제거 또는 수정된 키-값 쌍을 맵 내의 키 형식으로 보고합니다.대기열이 제공되지 않으면 표준 이벤트 루프를 통해 알림이 전달되므로 이벤트 루프가 다른 활동에 의해 차단되는 동안에는 알림을 전달할 수 없습니다. 대기열이 제공되면 대신 해당 대기열로 알림이 전달됩니다. 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 collection에 대한 알림이 포함될 수 있습니다.
예를 들어 다음 코드는 알림 차단을 추가한 직후 쓰기 트랜잭션(write transaction)을 수행하므로 초기 알림이 먼저 전달될 기회가 없습니다. 결과적으로 초기 알림에는 쓰기 트랜잭션(write transaction) 후 Realm의 상태가 반영됩니다.
let myStringMap = myObject.stringMap print("myStringMap.count: \(myStringMap?.count)") // => 0 let token = myStringMap.observe { changes in switch changes { case .initial(let myStringMap): // Will print "myStringMap.count: 1" print("myStringMap.count: \(myStringMap.count)") print("Dog Name: \(myStringMap["nameOfDog"])") // => "Rex" break case .update: // Will not be hit in this example break case .error: break } } try! realm.write { myStringMap["nameOfDog"] = "Rex" }
키 경로를 지정하지 않으면 모든 객체 속성과 중첩되고 연결된 객체의 속성에 대해 삽입, 수정 또는 삭제할 때 차단이 실행됩니다. 하나 이상의 키 경로가 제공되면 제공된 키 경로에서만 발생하는 변경에 대해 차단이 호출됩니다. 예를 들어 다음과 같은 경우입니다.
class Dog: Object { @Persisted var name: String @Persisted var age: Int @Persisted var toys: List<Toy> } // ... let dogs = myObject.mapOfDogs let token = dogs.observe(keyPaths: ["name"]) { changes in switch changes { case .initial(let dogs): // ... case .update: // This case is hit: // - after the token is initialized // - when the name property of an object in the // collection is modified // - when an element is inserted or removed // from the collection. // This block is not triggered: // - when a value other than name is modified on // one of the elements. case .error: // ... } }
- 관찰된 키 경로가
["toys.brand"]
인 경우 collection 요소의toys
목록을 삽입하거나 삭제하면 trigger 됩니다. 이 collection의Dog
에 연결된Toy
의brand
값을 변경하면 차단이 trigger됩니다. 이 collection의Dog
에 연결된Toy
에서brand
이외의 값을 변경해도 차단이 trigger되지 않습니다. 관찰 중인Dog
유형 collection을 삽입하거나 제거하면 trigger 알림이 됩니다. 위의 예에서
["toys"]
키 경로를 관찰한 경우 collection의 모든 요소에 대한toys
목록을 삽입, 삭제 또는 수정하면 trigger가 됩니다. 이 컬렉션의Dog
에 연결된Toy
의 값을 변경해도 차단이 트리거 되지 않습니다 . 관찰 중인Dog
유형 collection을 삽입하거나 제거해도 알림이 trigger됩니다.
참고
별도의 키 경로를 필터링하는 동일한 객체의 여러 알림 토큰은 독점적으로 필터링 되지 않습니다 . 하나의 알림 토큰에 대해 하나의 키 경로 변경이 충족되면 해당 객체에 대한 모든 알림 토큰 차단이 실행됩니다.
블록에 업데이트를 전송하려는 한 반환된 토큰을 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
invalidate()
을 호출합니다.경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.
참고
keyPaths 매개변수는 collection 유형의 객체 속성을 참조하며 지도 내의 특정 키/값 쌍을 참조 하지 않습니다 .
선언
Swift
public func observe(keyPaths: [String]? = nil, on queue: DispatchQueue? = nil, _ block: @escaping (RealmMapChange<Map>) -> Void) -> NotificationToken
매개변수
keyPaths
키 경로 배열에 포함된 속성만 수정 시 trigger가 속성됩니다.
nil
인 경우 객체의 속성 변경에 대한 알림이 전달됩니다. 유효한 속성에 해당하지 않는 문자열 키 경로는 예외를 발생시킵니다. 연결된 속성에 대한 자세한 내용은 위의 설명을 참조하세요.queue
알림을 수신할 직렬 디스패치 대기열입니다.
nil
인 경우 알림이 현재 스레드로 전달됩니다.block
변경이 발생할 때마다 호출되는 차단입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
- 관찰된 키 경로가
-
지도가 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 맵이 있는 행위자에 대해 비동기적으로 호출된 다음, 맵에 있는 키나 객체의 값을 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
블록에 전달되는
change
매개변수는 각 쓰기 트랜잭션(write transaction) 중에 추가, 제거 또는 수정된 키-값 쌍을 맵 내의 키 형식으로 보고합니다.알림은 해당 행위자 실행기의 지정된 행위자와 격리된 함수에 전달됩니다. 행위자가 차단 작업을 수행하는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 collection에 대한 알림이 포함될 수 있으며, 초기 알림이 전달된 후에 발생하는 쓰기에 대해서만 변경 사항이 보고됩니다.
키 경로를 지정하지 않으면 모든 객체 속성과 중첩되고 연결된 객체의 속성에 대해 삽입, 수정 또는 삭제할 때 차단이 실행됩니다. 하나 이상의 키 경로가 제공되면 제공된 키 경로에서만 발생하는 변경에 대해 차단이 호출됩니다. 예를 들어 다음과 같은 경우입니다.
class Dog: Object { @Persisted var name: String @Persisted var age: Int @Persisted var toys: List<Toy> } // ... let dogs = myObject.mapOfDogs let token = dogs.observe(keyPaths: ["name"], on: actor) { actor, changes in switch changes { case .initial(let dogs): // ... case .update: // This case is hit: // - after the token is initialized // - when the name property of an object in the collection is modified // - when an element is inserted or removed from the collection. // This block is not triggered: // - when a value other than name is modified on one of the elements. case .error: // No longer possible and left for backwards compatibility } }
- 관찰된 키 경로가
["toys.brand"]
인 경우 collection 요소의toys
목록을 삽입하거나 삭제하면 trigger 됩니다. 이 collection의Dog
에 연결된Toy
의brand
값을 변경하면 차단이 trigger됩니다. 이 collection의Dog
에 연결된Toy
에서brand
이외의 값을 변경해도 차단이 trigger되지 않습니다. 관찰 중인Dog
유형 collection을 삽입하거나 제거하면 trigger 알림이 됩니다. - 위의 예에서
["toys"]
키 경로를 관찰한 경우 collection의 모든 요소에 대한toys
목록을 삽입, 삭제 또는 수정하면 trigger가 됩니다. 이 컬렉션의Dog
에 연결된Toy
의 값을 변경해도 차단이 트리거 되지 않습니다 . 관찰 중인Dog
유형 collection을 삽입하거나 제거해도 알림이 trigger됩니다.
블록에 업데이트를 전송하려는 한 반환된 토큰을 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
invalidate()
을 호출합니다.경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.
참고
keyPaths 매개변수는 collection 유형의 객체 속성을 참조하며 지도 내의 특정 키/값 쌍을 참조 하지 않습니다 .
선언
Swift
@available(macOS 10.15, tvOS 13.0, iOS 13.0, watchOS 6.0, *) public func observe<A: Actor>( keyPaths: [String]? = nil, on actor: A, _isolation: isolated (any Actor)? = #isolation, _ block: @Sendable @escaping (isolated A, RealmMapChange<Map>) -> Void ) async -> NotificationToken
매개변수
keyPaths
키 경로 배열에 포함된 속성만 수정 시 trigger가 속성됩니다.
nil
인 경우 객체의 속성 변경에 대한 알림이 전달됩니다. 유효한 속성에 해당하지 않는 문자열 키 경로는 예외를 발생시킵니다. 연결된 속성에 대한 자세한 내용은 위의 설명을 참조하세요.actor
알림이 전달될 액터입니다. 차단은 이 행위자에게 격리된 매개변수로 전달되므로 콜백 내에서 행위자에 동기적으로 액세스할 수 있습니다.
block
변경이 발생할 때마다 호출되는 차단입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
- 관찰된 키 경로가
-
지도가 변경될 때마다 호출될 블록을 등록합니다.
블록은 초기 맵이 있는 행위자에 대해 비동기적으로 호출된 다음, 맵에 있는 키나 객체의 값을 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.
블록에 전달되는
change
매개변수는 각 쓰기 트랜잭션(write transaction) 중에 추가, 제거 또는 수정된 키-값 쌍을 맵 내의 키 형식으로 보고합니다.알림은 해당 행위자 실행기의 지정된 행위자와 격리된 함수에 전달됩니다. 행위자가 차단 작업을 수행하는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 collection에 대한 알림이 포함될 수 있으며, 초기 알림이 전달된 후에 발생하는 쓰기에 대해서만 변경 사항이 보고됩니다.
제공된 키 경로에서만 발생하는 변경에 대해 차단이 호출됩니다. 예를 들어 다음과 같은 경우입니다.
class Dog: Object { @Persisted var name: String @Persisted var age: Int @Persisted var toys: List<Toy> } // ... let dogs = myObject.mapOfDogs let token = dogs.observe(keyPaths: [\.name], on: actor) { actor, changes in switch changes { case .initial(let dogs): // ... case .update: // This case is hit: // - after the token is initialized // - when the name property of an object in the collection is modified // - when an element is inserted or removed from the collection. // This block is not triggered: // - when a value other than name is modified on one of the elements. case .error: // No longer possible and left for backwards compatibility } }
- 관찰된 키 경로가
[\.toys.brand]
인 경우 collection 요소의toys
목록을 삽입하거나 삭제하면 trigger 됩니다. 이 collection의Dog
에 연결된Toy
의brand
값을 변경하면 차단이 trigger됩니다. 이 collection의Dog
에 연결된Toy
에서brand
이외의 값을 변경해도 차단이 trigger되지 않습니다. 관찰 중인Dog
유형 collection을 삽입하거나 제거하면 trigger 알림이 됩니다. - 위의 예에서
[\.toys]
키 경로를 관찰한 경우 collection의 모든 요소에 대한toys
목록을 삽입, 삭제 또는 수정하면 trigger가 됩니다. 이 컬렉션의Dog
에 연결된Toy
의 값을 변경해도 차단이 트리거 되지 않습니다 . 관찰 중인Dog
유형 collection을 삽입하거나 제거해도 알림이 trigger됩니다.
블록에 업데이트를 전송하려는 한 반환된 토큰을 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서
invalidate()
을 호출합니다.경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.
참고
keyPaths 매개변수는 collection 유형의 객체 속성을 참조하며 지도 내의 특정 키/값 쌍을 참조 하지 않습니다 .
선언
Swift
@available(macOS 10.15, tvOS 13.0, iOS 13.0, watchOS 6.0, *) public func observe<A: Actor>( keyPaths: [PartialKeyPath<Value.Wrapped>], on actor: A, _isolation: isolated (any Actor)? = #isolation, _ block: @Sendable @escaping (isolated A, RealmMapChange<Map>) -> Void ) async -> NotificationToken where Value: OptionalProtocol, Value.Wrapped: ObjectBase
매개변수
keyPaths
키 경로 배열에 포함된 속성만 수정 시 trigger가 속성됩니다.
nil
인 경우 객체의 속성 변경에 대한 알림이 전달됩니다. 유효한 속성에 해당하지 않는 문자열 키 경로는 예외를 발생시킵니다. 연결된 속성에 대한 자세한 내용은 위의 설명을 참조하세요.actor
알림이 전달될 액터입니다. 차단은 이 행위자에게 격리된 매개변수로 전달되므로 콜백 내에서 행위자에 동기적으로 액세스할 수 있습니다.
block
변경이 발생할 때마다 호출되는 차단입니다.
반환 값
업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.
- 관찰된 키 경로가
-
Map
이(가) 동결되었는지 여부를 나타냅니다.동결된
Map
은 변경할 수 없으며 모든 스레드에서 액세스할 수 있습니다. 동결된Map
은 관리되는 라이브Map
에서-freeze
를 호출하여 생성됩니다. 관리되지 않는Map
는 동결되지 않습니다.선언
Swift
public var isFrozen: Bool { get }
-
Map
의 동결(불변) 스냅샷을 반환합니다.동결된 사본은 변경할 수 없는
Map
이며 이Map
에는 현재 포함되어 있는 것과 동일한 데이터를 포함하지만 포함하는 Realm에 쓰기가 수행될 때 업데이트되지 않습니다. 라이브Map
와 달리 동결된Map
은 모든 스레드에서 액세스할 수 있습니다.경고
쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.경고
이 메서드는 managedMap
에서만 호출할 수 있습니다.경고
Realm에서 쓰기 트랜잭션(write transaction)을 수행하는 동안 동결된Map
을(를) 오랫동안 유지하면 Realm 파일 크기가 커질 수 있습니다. 자세한 내용은RLMRealmConfiguration.maximumNumberOfActiveVersions
을(를) 참조하세요.선언
Swift
public func freeze() -> Map
-
이 동결된
Map
의 라이브 버전을 반환합니다.이 메서드는 동일한 동결된
Map
의 라이브 사본에 대한 참고를 확인합니다. 라이브Map
에서 호출되면 자체를 반환합니다.선언
Swift
public func thaw() -> Map?
-
지도에 포함된 객체에 대한 사람이 읽을 수 있는 설명을 반환합니다.
선언
Swift
public override var description: String { get }
-
collection이 변경될 때마다 Void를 방출하는 출판사입니다.
이름과 달리 실제로 collection 변경된 후에 방출합니다.
선언
Swift
public var objectWillChange: RealmPublishers.WillChange<Map> { get }
-
Map
의 연속 요소를 생성하는RLMMapIterator
을 반환합니다.선언
Swift
public func makeIterator() -> RLMMapIterator<SingleMapEntry<Key, Value>>
-
맵을
더 보기SingleMapEntry
시퀀스 대신(key: Key, value: Value)
시퀀스로 만드는 맵용 어댑터입니다.선언
Swift
public struct KeyValueSequence : Sequence
-
이 맵을 다음 시퀀스로 반환합니다.
(key: Key, value: Value)
선언
Swift
public func asKeyValueSequence() -> KeyValueSequence
-
선언
Swift
public convenience init(from decoder: Decoder) throws
-
선언
Swift
public func encode(to encoder: Encoder) throws