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 是 Realm 中的 container 类型,用于定义以不同值作为对象的多对多关系。

与 Swift 的Set一样, MutableSet是一种泛型类型,会根据其存储的类型进行参数化。 它可以是Object子类或以下类型之一: BoolIntInt8Int16Int32Int64FloatDoubleStringDataDateDecimal128ObjectId (及其可选版本)

与 Swift 的原生collection不同, MutableSet是引用类型,只有当托管它们的 Realm 以只读方式打开时,它们才是不可变的。

可以使用与Results<Element>相同的谓词对 MutableSet 进行过滤和排序。

初始化器

  • 创建一个MutableSet ,用于保存类型为Element的 Realm 模型对象。

    声明

    Swift

    public override init()

KVC

  • 返回一个Array ,其中包含对集合的每个对象使用key调用valueForKey(_:)的结果。

    声明

    Swift

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

对象检索

  • 警告

    MutableSet 上不保证顺序。 不应依赖订阅为实现带来的便利。

    声明

    Swift

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

过滤

  • 返回一个布尔值,指示 Set 是否包含给定对象。

    声明

    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。

变更

  • 如果对象尚不存在,则将其插入到集合中。

    警告

    此方法只能在写事务(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
  • 删除集中的对象(如果存在)。 该对象不会从托管它的 Realm 中删除。

    警告

    此方法只能在写事务(write transaction)期间调用。

    声明

    Swift

    public func remove(_ object: Element)

    参数

    object

    要删除的对象。

  • 从集合中删除所有对象。 对象不会从托管它们的 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

    另一套。

  • 返回 MutableSet 中包含的对象的人类可读描述。

    声明

    Swift

    public override var description: String { get }

MutableSet

  • 每次collection更改时发出 Void 的发布者。

    尽管有这个名称,但它实际上是在collection发生更改发出的。

    声明

    Swift

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

适用于以下位置: ElementDecodable

适用于ElementObjectBaseRealmCollectionValue

  • MutableSetElementMapperObjectsMutableSet EmbeddedObjects的实际MutableSet转换为ProjectedCollection

    例如:

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

    在此代码中, Person的狗集将通过projectTo投影到投影的狗名称集注意:这不是实际的数据类型,因此投影元素可能包含重复项。

    声明

    Swift

    public var projectTo: CollectionElementMapper<Element> { get }