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
参数互斥。 -
为给定的
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
序列 -
为给定的
Object
或EmbeddedObject
类型初始化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
序列 -
为给定的
Object
或EmbeddedObject
类型初始化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()