ObservedResults

@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
@propertyWrapper
public struct ObservedResults<ResultType> : DynamicProperty, BoundCollection where ResultType : KeypathSortable, ResultType : RealmFetchable, ResultType : _ObservedResultsValue, ResultType : Identifiable

一种属性包装器类型,表示对 Realm 进行查询的结果。

结果使用环境值realmConfiguration提供的 域 配置。

与非 SwiftUI 结果collection不同,ObservedResults 是可变的。写入 ObservedResults collection 会隐式执行写事务(write transaction)。如果将对象添加到 ObservedResults 中,关联查询会过滤掉该对象,则该对象会添加到域中,但不会包含在 ObservedResults 中。

对于 SwiftUI 中的@ObservedResults var v$v指的是BoundCollection

  • 声明

    Swift

    public typealias Element = ResultType
  • 存储用于过滤结果的 NSPredicate。 它与where参数互斥。

    声明

    Swift

    @State
    public var filter: NSPredicate? { get nonmutating set }
  • 存储用于筛选结果的类型安全查询。 它与filter参数互斥。

    声明

    Swift

    @State
    public var `where`: ((Query<ResultType>) -> Query<Bool>)? { get nonmutating set }
  • 为给定的Projection类型初始化ObservedResults结构体。

    声明

    Swift

    public init<ObjectType: ObjectBase>(_ type: ResultType.Type,
                                        configuration: Realm.Configuration? = nil,
                                        filter: NSPredicate? = nil,
                                        keyPaths: [String]? = nil,
                                        sortDescriptor: SortDescriptor? = nil) where ResultType: Projection<ObjectType>, ObjectType: ThreadConfined

    参数

    type

    观察类型

    configuration

    创建 Realm 时使用的Realm.Configuration ,给定分区值的用户同步配置将设置为syncConfiguration ,如果为空,则配置设置为defaultConfiguration

    filter

    仅对经过的对象进行观察。 如果没有给出筛选器 — 所有对象都会被观察到

    keyPaths

    只有键路径数组中包含的属性才会被观察到。 如果为nil ,则对象上的任何属性更改都会发送通知。 与有效属性不对应的字符串键路径将引发异常。

    sortDescriptor

    要排序的SortDescriptor序列

  • 为给定的ObjectEmbeddedObject类型初始化ObservedResults结构体。

    声明

    Swift

    public init(_ type: ResultType.Type,
                configuration: Realm.Configuration? = nil,
                filter: NSPredicate? = nil,
                keyPaths: [String]? = nil,
                sortDescriptor: SortDescriptor? = nil) where ResultType: Object

    参数

    type

    观察类型

    configuration

    创建 Realm 时使用的Realm.Configuration ,给定分区值的用户同步配置将设置为syncConfiguration ,如果为空,则配置设置为defaultConfiguration

    filter

    仅对经过的对象进行观察。 如果没有给出筛选器 — 所有对象都会被观察到

    keyPaths

    只有键路径数组中包含的属性才会被观察到。 如果为nil ,则对象上的任何属性更改都会发送通知。 与有效属性不对应的字符串键路径将引发异常。

    sortDescriptor

    要排序的SortDescriptor序列

  • 为给定的ObjectEmbeddedObject类型初始化ObservedResults结构体。

    声明

    Swift

    public init(_ type: ResultType.Type,
                configuration: Realm.Configuration? = nil,
                where: ((Query<ResultType>) -> Query<Bool>)? = nil,
                keyPaths: [String]? = nil,
                sortDescriptor: SortDescriptor? = nil) where ResultType: Object

    参数

    type

    观察类型

    configuration

    创建 Realm 时使用的Realm.Configuration ,给定分区值的用户同步配置将设置为syncConfiguration ,如果为空,则配置设置为defaultConfiguration

    where

    仅对经过的对象进行观察。 如果未给出类型安全查询,则将观察所有对象

    keyPaths

    只有键路径数组中包含的属性才会被观察到。 如果为nil ,则对象上的任何属性更改都会发送通知。 与有效属性不对应的字符串键路径将引发异常。

    sortDescriptor

    要排序的SortDescriptor序列

  • 声明

    Swift

    nonisolated public func update()