MutableSet

public final class MutableSet<Element> : RLMSwiftCollectionBase where Element : RealmCollectionValue
extension MutableSet: ObservableObject, RealmSubscribable
extension MutableSet: RealmCollection
extension MutableSet: Decodable where Element: Decodable
extension MutableSet: Encodable where Element: Encodable

MutableSet 은(는) 고유한 값을 객체로 사용하는 to-many 관계를 정의하는 데 사용되는 Realm의 container 유형입니다.

Swift의 Set 처럼 MutableSet 도 저장하는 유형에 따라 매개변수화되는 일반 유형입니다. 이 클래스는 Object 서브클래스이거나 다음 유형 중 하나일 수 있습니다: Bool, Int, Int8, Int16, Int32, Int64, Float, Double, String, Data, Date, Decimal128ObjectId (및 해당 옵션 버전)

Swift의 네이티브 컬렉션과 달리 MutableSet는 참조 유형이며 collection을 managed하는 Realm이 읽기 전용으로 열린 경우에만 변경되지 않습니다.

MutableSet는 Results<Element> 과 동일한 조건자를 사용하여 필터링하고 정렬할 수 있습니다.

Object 서브클래스에 정의된 MutableSet 유형의 속성은 let 로 선언되어야 하며 dynamic 일 수 없습니다.

속성

  • 설정하다 를 관리하는 Realm 이거나, 설정하다 가 관리되지 않는 경우 nil 입니다.

    선언

    Swift

    public var realm: Realm? { get }
  • 세트에 더 이상 액세스할 수 없는지 여부를 나타냅니다.

    선언

    Swift

    public var isInvalidated: Bool { get }

이니셜라이저

  • Element 유형의 Realm 모델 객체를 보유하는 MutableSet 을 만듭니다.

    선언

    Swift

    public override init()

Count

  • 이 MutableSet에 있는 객체의 수를 반환합니다.

    선언

    Swift

    public var count: Int { get }

KVC

  • 컬렉션의 각 객체에 대해 를 Array 사용하여 를 호출한 결과가 포함된 valueForKey(_:) 을 반환합니다.key

    선언

    Swift

    @nonobjc
    public func value(forKey key: String) -> [AnyObject]
  • 컬렉션의 각 객체에 대해 를 Array 사용하여 를 호출한 결과가 포함된 valueForKeyPath(_:) 을 반환합니다.keyPath

    선언

    Swift

    @nonobjc
    public func value(forKeyPath keyPath: String) -> [AnyObject]

    매개변수

    keyPath

    값을 원하는 속성의 키 경로입니다.

  • 지정된 valuekey 를 사용하여 컬렉션의 각 객체에 대해 setValue(_:forKey:) 을(를) 호출합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public override func setValue(_ value: Any?, forKey key: String)

    매개변수

    value

    객체 값입니다.

    key

    각 객체에 값을 설정해야 하는 속성의 이름입니다.

필터링

  • 설정하다 에서 지정된 조건자와 일치하는 모든 객체를 포함하는 Results 을 반환합니다.

    선언

    Swift

    public func filter(_ predicate: NSPredicate) -> Results<Element>

    매개변수

    predicate

    객체를 필터링하는 데 사용할 조건자입니다.

  • 세트에 지정된 객체가 포함되어 있는지 여부를 나타내는 부울 값을 반환합니다.

    선언

    Swift

    public func contains(_ object: Element) -> Bool

    매개변수

    object

    MutableSet에서 찾을 요소입니다.

  • 이 집합이 지정된 집합의 하위 집합인지 여부를 나타내는 부울 값을 반환합니다.

    선언

    Swift

    public func isSubset(of possibleSuperset: MutableSet<Element>) -> Bool

    매개변수

    object

    비교할 또 다른 MutableSet입니다.

  • 이 세트가 지정된 다른 세트와 교차하는지 여부를 나타내는 부울 값을 반환합니다.

    선언

    Swift

    public func intersects(_ otherSet: MutableSet<Element>) -> Bool

    매개변수

    object

    비교할 또 다른 MutableSet입니다.

정렬

  • 설정하다 에 있지만 정렬된 객체를 포함하는 Results 를 반환합니다.

    객체는 지정된 키 경로의 값을 기준으로 정렬됩니다. 예를 예시 , age 속성 을 기준으로 가장 어린 것부터 가장 오래된 것까지 Student설정하다 를 정렬하려면 students.sorted(byKeyPath: "age", ascending: true) 를 호출할 수 있습니다.

    경고

    MutableSets는 부울, Date, NSDate, 단정밀도 및 배정밀도 부동 점, 정수 및 string 유형의 속성을 통해서만 정렬할 수 있습니다.

    선언

    Swift

    public func sorted(byKeyPath keyPath: String, ascending: Bool = true) -> Results<Element>

    매개변수

    keyPath

    정렬 기준이 되는 키 경로입니다.

    ascending

    정렬할 방향입니다.

  • 설정하다 에 있지만 정렬된 객체를 포함하는 Results 를 반환합니다.

    경고

    MutableSets는 부울, Date, NSDate, 단정밀도 및 배정밀도 부동 점, 정수 및 string 유형의 속성을 통해서만 정렬할 수 있습니다.

    ~를 참조하세요.

    sorted(byKeyPath:ascending:)

    선언

    Swift

    public func sorted<S: Sequence>(by sortDescriptors: S) -> Results<Element>
        where S.Iterator.Element == SortDescriptor

집계 작업

  • 설정하다 에 있는 모든 객체 중 지정된 속성 의 최소값(가장 낮음)을 반환하거나, 설정하다 가 비어 있는 경우 nil 을 반환합니다.

    경고

    유형이 MinMaxType 프로토콜을 준수하는 속성만 지정할 수 있습니다.

    선언

    Swift

    public func min<T>(ofProperty property: String) -> T? where T : MinMaxType

    매개변수

    property

    최소값을 원하는 속성의 이름입니다.

  • 설정하다 의 모든 객체 중 지정된 속성 의 최대값(가장 높은 값)을 반환하거나, 설정하다 가 비어 있는 경우 nil 를 반환합니다.

    경고

    유형이 MinMaxType 프로토콜을 준수하는 속성만 지정할 수 있습니다.

    선언

    Swift

    public func max<T>(ofProperty property: String) -> T? where T : MinMaxType

    매개변수

    property

    최대값을 원하는 속성 의 이름입니다.

  • 설정하다 의 모든 객체에 대해 지정된 속성 값의 합계를 반환합니다.

    경고

    유형이 AddableType 프로토콜을 준수하는 속성만 지정할 수 있습니다.

    선언

    Swift

    public func sum<T>(ofProperty property: String) -> T where T : AddableType

    매개변수

    property

    값을 합산해야 하는 속성의 이름입니다.

  • 설정하다 의 모든 객체에 대해 지정된 속성 의 평균값을 반환하거나, 설정하다 가 비어 있는 경우 nil 를 반환합니다.

    경고

    유형이 AddableType 프로토콜을 준수하는 속성만 지정할 수 있습니다.

    선언

    Swift

    public func average<T>(ofProperty property: String) -> T? where T : AddableType

    매개변수

    property

    평균값을 계산해야 하는 속성 의 이름입니다.

변형

  • 아직 없는 경우 객체를 세트에 삽입합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func insert(_ object: Element)

    매개변수

    object

    객체입니다.

  • 아직 없는 경우 지정된 객체 시퀀스를 세트에 삽입합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func insert<S>(objectsIn objects: S) where Element == S.Element, S : Sequence
  • 세트에 있는 객체(있는 경우)를 제거합니다. 객체는 해당 객체를 managed Realm에서 제거되지 않습니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func remove(_ object: Element)

    매개변수

    object

    제거할 객체입니다.

  • 세트에서 모든 객체를 제거합니다. 객체는 해당 객체를 managed Realm에서 제거되지 않습니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func removeAll()
  • 이 세트와 지정된 시퀀스 모두에 공통된 요소로 세트를 변경합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func formIntersection(_ other: MutableSet<Element>)

    매개변수

    other

    또 다른 세트입니다.

  • 세트를 제자리에서 변경하고 이 세트에서 지정된 세트의 요소를 제거합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func subtract(_ other: MutableSet<Element>)

    매개변수

    other

    또 다른 세트입니다.

  • 지정된 시퀀스의 요소를 세트에 삽입합니다.

    경고

    이 메서드는 쓰기 트랜잭션(write transaction) 중에만 호출할 수 있습니다.

    선언

    Swift

    public func formUnion(_ other: MutableSet<Element>)

    매개변수

    other

    또 다른 세트입니다.

알림

  • collection이 변경될 때마다 호출될 블록을 등록합니다.

    블록은 초기 결과와 함께 비동기적으로 호출된 다음 컬렉션의 객체 또는 컬렉션에 있는 객체를 변경하는 각 쓰기 트랜잭션(write transaction) 후에 다시 호출됩니다.

    블록에 전달되는 change 매개변수는 각 쓰기 트랜잭션(write transaction) 중에 추가, 제거 또는 수정된 객체를 collection 내에서 인덱스 형식으로 보고합니다. 제공된 변경 정보에 대한 자세한 내용과 이를 사용하여 UITableView 을 업데이트하는 방법에 대한 예는 RealmCollectionChange 문서를 참조하세요.

    차단이 호출되는 시점에 collection은 완전히 평가되고 최신 상태이므로 동일한 스레드에서 쓰기 트랜잭션 (write transaction)을 수행하지 않거나 명시적으로 realm.refresh() 호출하지 않는 한 해당 스레드에 액세스하면 차단이 수행되지 않습니다. 일.

    대기열이 제공되지 않으면 표준 이벤트 루프를 통해 알림이 전달되므로 이벤트 루프가 다른 활동에 의해 차단되는 동안에는 알림을 전달할 수 없습니다. 대기열이 제공되면 대신 해당 대기열로 알림이 전달됩니다. 알림을 즉시 전달할 수 없는 경우 여러 알림이 단일 알림으로 병합될 수 있습니다. 여기에는 초기 collection에 대한 알림이 포함될 수 있습니다.

    예를 들어 다음 코드는 알림 차단을 추가한 직후 쓰기 트랜잭션(write transaction)을 수행하므로 초기 알림이 먼저 전달될 기회가 없습니다. 결과적으로 초기 알림에는 쓰기 트랜잭션(write transaction) 후 Realm의 상태가 반영됩니다.

    let results = realm.objects(Dog.self)
    print("dogs.count: \(dogs?.count)") // => 0
    let token = dogs.observe { changes in
        switch changes {
        case .initial(let dogs):
            // Will print "dogs.count: 1"
            print("dogs.count: \(dogs.count)")
            break
        case .update:
            // Will not be hit in this example
            break
        case .error:
            break
        }
    }
    try! realm.write {
        let dog = Dog()
        dog.name = "Rex"
        person.dogs.insert(dog)
    }
    // end of run loop execution context
    

    블록에 업데이트를 전송하려는 한 반환된 토큰을 보관해야 합니다. 업데이트 수신을 중지하려면 토큰에서 invalidate() 을 호출합니다.

    경고

    쓰기 트랜잭션(write transaction) 중에는 또는 포함하는 Realm이 읽기 전용일 때 이 메서드를 호출할 수 없습니다.

    선언

    Swift

    public func observe(on queue: DispatchQueue? = nil,
                        _ block: @escaping (RealmCollectionChange<MutableSet>) -> Void) -> NotificationToken

    매개변수

    queue

    알림을 수신할 직렬 디스패치 대기열입니다. nil 인 경우 알림이 현재 스레드로 전달됩니다.

    block

    변경이 발생할 때마다 호출되는 차단입니다.

    반환 값

    업데이트가 전달되기를 원하는 기간 동안 보유해야 하는 토큰입니다.

동결된 객체

MutableSet

  • collection이 변경될 때마다 Void를 방출하는 출판사입니다.

    이름과 달리 실제로 collection 변경된 후에 방출합니다.

    선언

    Swift

    public var objectWillChange: RealmPublishers.WillChange<MutableSet> { get }
  • 설정하다 내에 저장된 객체의 유형입니다.

    선언

    Swift

    public typealias ElementType = Element

시퀀스 지원

  • MutableSet 의 연속 요소를 생성하는 RLMIterator 을 반환합니다.

    선언

    Swift

    public func makeIterator() -> RLMIterator<Element>
  • 비어 있지 않은 collection에서 첫 번째 요소의 위치입니다. 빈 collection의 endIndex 와 동일합니다.

    선언

    Swift

    public var startIndex: Int { get }
  • 컬렉션의 '끝 이후' 위치입니다. endIndex는 아래 첨자에 대한 유효한 인수가 아니며, 0개 이상의 Successor() 애플리케이션으로 항상 startIndex에서 도달할 수 있습니다.

    선언

    Swift

    public var endIndex: Int { get }
  • 선언

    Swift

    public func index(after i: Int) -> Int
  • 선언

    Swift

    public func index(before i: Int) -> Int

객체 조회

  • 경고

    MutableSet에서는 순서가 보장되지 않습니다. 편의를 위해 구현된 구독은 의존해서는 안 됩니다.

    선언

    Swift

    public subscript(position: Int) -> Element { get }
  • 경고

    MutableSet에서는 순서가 보장되지 않습니다. first 은(는) 편의상 구현되었으며, 이에 의존해서는 안 됩니다.

    선언

    Swift

    public var first: Element? { get }

Element: MinMaxType에서 사용 가능

  • 설정하다 의 최소값(가장 낮은 값)을 반환하거나, 설정하다 이 비어 있는 경우 nil 을 반환합니다.

    선언

    Swift

    public func min() -> Element?
  • 설정하다 의 최대값(가장 높은 값)을 반환하거나, 설정하다 이 비어 있는 경우 nil 을 반환합니다.

    선언

    Swift

    public func max() -> Element?

Element: AddableType에서 사용 가능

  • 설정하다 에 있는 값의 합계를 반환합니다.

    선언

    Swift

    public func sum() -> Element
  • 설정하다 에 있는 값의 평균을 반환하거나, 설정하다 가 비어 있는 경우 nil 를 반환합니다.

    선언

    Swift

    public func average<T>() -> T? where T : AddableType

Element: Decodable에서 사용 가능

Element: Encodable에서 사용 가능