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
子类或以下类型之一: Bool
、 Int
、 Int8
、 Int16
、 Int32
、 Int64
、 Float
、 Double
、 String
、 Data
、 Date
、 Decimal128
和ObjectId
(及其可选版本)
与 Swift 的原生collection不同, MutableSet
是引用类型,只有当托管它们的 Realm 以只读方式打开时,它们才是不可变的。
可以使用与Results<Element>
相同的谓词对 MutableSet 进行过滤和排序。
-
创建一个
MutableSet
,用于保存类型为Element
的 Realm 模型对象。声明
Swift
public override init()
-
返回一个
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 }
-
每次collection更改时发出 Void 的发布者。
尽管有这个名称,但它实际上是在collection发生更改后发出的。
声明
Swift
public var objectWillChange: RealmPublishers.WillChange<MutableSet> { get }
-
声明
Swift
public convenience init(from decoder: Decoder) throws
-
MutableSetElementMapper
将Objects
或MutableSet
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 }