MutableSet

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

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> 과 동일한 조건자를 사용하여 필터링하고 정렬할 수 있습니다.

이니셜라이저

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

    선언

    스위프트

    public override init()

KVC

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

    선언

    스위프트

    @nonobjc
    public func value(forKey key: String) -> [AnyObject]

객체 조회

  • 경고

    MutableSet에서는 순서가 보장되지 않습니다. 첨자는 구현의 편의성에 의존해서는 안 됩니다.

    선언

    스위프트

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

필터링

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

    선언

    스위프트

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

    매개변수

    object

    MutableSet에서 찾을 요소입니다.

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

    선언

    스위프트

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

    매개변수

    object

    비교할 또 다른 MutableSet입니다.

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

    선언

    스위프트

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

    매개변수

    object

    비교할 또 다른 MutableSet입니다.

변형

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

    경고

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

    선언

    스위프트

    public func insert(_ object: Element)

    매개변수

    object

    객체입니다.

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

    경고

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

    선언

    스위프트

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

    경고

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

    선언

    스위프트

    public func remove(_ object: Element)

    매개변수

    object

    제거할 객체입니다.

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

    경고

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

    선언

    스위프트

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

    경고

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

    선언

    스위프트

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

    매개변수

    other

    또 다른 세트입니다.

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

    경고

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

    선언

    스위프트

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

    매개변수

    other

    또 다른 세트입니다.

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

    경고

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

    선언

    스위프트

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

    매개변수

    other

    또 다른 세트입니다.

  • MutableSet에 포함된 객체에 대한 사람이 읽을 수 있는 설명을 반환합니다.

    선언

    스위프트

    public override var description: String { get }

MutableSet

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

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

    선언

    스위프트

    public var objectWillChange: RealmPublishers.WillChange<MutableSet> { get }

Element: Decodable에서 사용 가능

Element: ObjectBase & RealmCollectionValue에서 사용 가능

  • MutableSetElementMapper 에서 의 실제 MutableSet Objects 또는 를 MutableSet EmbeddedObjects 로 변환합니다.ProjectedCollection

    예를 들면 다음과 같습니다.

     class Person: Object {
         @Persisted var dogs: MutableSet<Dog>
     }
     class PersonProjection: Projection<Person> {
         @Projected(\Person.dogs.projectTo.name) var dogNames: ProjectedCollection<String>
     }
    

    이 코드에서 Person의 개 세트는 projectTo 을 통해 프로젝션된 개 이름 세트에 연결됩니다. 참고: 이는 실제 세트 데이터 유형이 아니므로 프로젝션된 요소에 중복된 항목이 포함될 수 있습니다.

    선언

    스위프트

    public var projectTo: CollectionElementMapper<Element> { get }