结构体

以下结构在全局范围内可用。

  • 该结构体通过以下方式在 Swift 中启用 RLMObjects 的序列式枚举: RLMCollection.makeIterator

    查看更多

    声明

    Swift

    public struct RLMCollectionIterator : IteratorProtocol
  • 此结构体通过以下方式在 Swift 中启用 RLMDictionary 的序列式枚举: RLMDictionary.makeIterator

    查看更多

    声明

    Swift

    public struct RLMDictionaryIterator : IteratorProtocol
  • 一个Realm实例(也称为“Realm”)代表一个 Realm 数据库。

    Realm 可以存储在磁盘上(请参阅init(path:) )或内存中(请参阅Configuration )。

    Realm 实例在内部缓存,构造等效的Realm对象(例如,通过使用相同的路径或标识符)产生的开销有限。

    如果您特别希望确保销毁Realm实例(例如,如果您希望打开 Realm,检查某些属性,然后可能删除 Realm 文件并重新打开它),请将使用 Realm 文件的代码放在autoreleasepool {}内,并确保没有其他强引用对其进行强引用。

    警告

    警告 未冻结的RLMRealm实例受线程限制,不能跨线程或调度队列共享。 尝试这样做会导致抛出异常。 您必须在要与Realm交互的每个线程或队列上获取RLMRealm的实例。 在获取RLMRealm实例时,可以通过显式传入队列来将 Realm 限制为调度队列,而不是其打开所在的线程。 如果不这样做,尝试在分派到同一队列的多个区块中使用同一实例可能会失败,因为队列并不总是在同一线程上运行。
    查看更多

    声明

    Swift

    @frozen
    public struct Realm
    extension Realm: Equatable
  • LinkingObjects 是一种自动更新的container类型。它表示通过属性关系链接到其所属模型对象的零个或多个对象。

    LinkingObjects 可以使用与List<Element>Results<Element>相同的谓词进行查询。

    LinkingObjects 始终反映当前线程上的 Realm 的当前状态,包括在当前线程上的写事务(write transaction)期间。唯一的例外是使用for...in枚举时,该枚举将始终枚举开始枚举时存在的链接对象,即使其中一些对象在枚举期间被删除或修改为不再链接到目标对象。 。

    LinkingObjects 只能用作Object模型上的属性。 这种类型的属性必须声明为let且不能为dynamic

    查看更多

    声明

    Swift

    @frozen
    public struct LinkingObjects<Element> where Element : ObjectBase, Element : RealmCollectionValue
    extension LinkingObjects: RealmSubscribable
    extension LinkingObjects: RealmCollection

AddableType

  • Results 是 Realm 中从对象查询返回的自动更新container类型。

    Results 可以使用与List<Element>相同的谓词进行查询,并且可以链式查询以进一步筛选查询结果。

    Results 始终反映当前线程上的 Realm 的当前状态,包括在当前线程上的写事务(write transaction)期间。唯一的例外是使用for...in枚举时,该枚举将始终枚举开始枚举时与查询匹配的对象,即使其中一些对象在枚举期间被删除或修改为被筛选器排除。

    Results 首次访问时延迟求值;它们仅在请求查询结果时才运行查询。 这意味着链接多个临时Results来对数据进行排序和筛选不会执行任何不必要的中间状态处理工作。

    评估结果或添加通知块后,系统会立即使结果保持最新,并尽可能在背景线程上完成保持最新的工作。

    结果实例无法直接实例化。

    查看更多

    声明

    Swift

    @frozen
    public struct Results<Element> : Equatable where Element : RealmCollectionValue
    extension Results: RealmSubscribable
    extension Results: RealmCollection
    extension Results: Encodable where Element: Encodable
  • 类型擦除的RealmCollection

    RealmCollection的实例将操作转发到具有相同Element类型的不透明根本的集合。

    查看更多

    声明

    Swift

    public struct AnyRealmCollection<Element> : RealmCollection, UntypedCollection where Element : RealmCollectionValue
    extension AnyRealmCollection: RealmSubscribable

订阅

  • 封装 Realm 通知的订阅。

    查看更多

    声明

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct ObservationSubscription : Subscription
  • 封装 Realm AsyncOpenTask 的订阅。

    查看更多

    声明

    Swift

    @available(macOS 10.15, watchOS 6.0, iOS 13.0, iOSApplicationExtension 13.0, macOSApplicationExtension 10.15, tvOS 13.0, *)
    @frozen
    public struct AsyncOpenSubscription : Subscription

MapIndex

SingleMapEntry

  • 用于在 Map 中保存单个键值条目的容器。 这用于元组无法表示为通用参数的情况。

    查看更多

    声明

    Swift

    public struct SingleMapEntry<Key, Value> : _RealmMapValue, Hashable where Key : _MapKey, Value : RealmCollectionValue
  • Migration 实例封装了旨在促进模式迁移的信息。

    更新 Realm 的版本时, Migration实例会传递到用户定义的MigrationBlock区块中。 此实例提供对新旧数据库模式、Realm 中的对象的访问,并提供在迁移期间修改 Realm 的功能。

    查看更多

    声明

    Swift

    @frozen
    public struct Migration
  • 有关Object更改通知中更改的特定属性的信息。

    查看更多

    声明

    Swift

    @frozen
    public struct PropertyChange
  • 该类表示 Realm 模型对象模式。

    使用 Realm 时, ObjectSchema实例允许执行迁移和内省数据库模式。

    对象模式映射到核心数据库中的表。

    查看更多

    声明

    Swift

    @frozen
    public struct ObjectSchema : CustomStringConvertible
    extension ObjectSchema: Equatable
  • Property 实例表示由对象模式上下文中的 Realm 托管的属性。此类属性可能会持久保存在 Realm 文件中,也可能会根据 Realm 中的其他数据进行计算。

    使用 Realm 时,属性实例允许执行迁移和内省数据库模式。

    属性实例映射到核心数据库中的列。

    查看更多

    声明

    Swift

    @frozen
    public struct Property : CustomStringConvertible
    extension Property: Equatable
  • RealmCollection实例的迭代器。

    查看更多

    声明

    Swift

    @frozen
    public struct RLMIterator<Element> : IteratorProtocol where Element : RealmCollectionValue
  • RealmKeyedCollection实例的迭代器。

    查看更多

    声明

    Swift

    @frozen
    public struct RLMMapIterator<Element> : IteratorProtocol where Element : _RealmMapValue
  • Schema 实例表示由 Realm 托管的对象模式的collection。

    使用 Realm 时, Schema实例允许执行迁移和内省数据库模式。

    模式映射到核心数据库中的collection。

    查看更多

    声明

    Swift

    @frozen
    public struct Schema : CustomStringConvertible
    extension Schema: Equatable
  • SortDescriptor存储键路径和排序顺序以与sorted(sortDescriptors:)一起使用。 它与NSSortDescriptor类似,但仅支持可由 Realm 查询引擎高效运行的功能子集。

    查看更多

    声明

    Swift

    @frozen
    public struct SortDescriptor
    extension SortDescriptor: CustomStringConvertible
    extension SortDescriptor: Equatable
    extension SortDescriptor: ExpressibleByStringLiteral

StateRealmObject

  • 用于实例化可观察对象的属性包装器类型。

    通过将@StateRealmObject属性应用于属性声明并提供符合doc://com.apple.documentation/documentation的初始值,在SwiftUI/ViewSwiftUI/AppSwiftUI/Scene中创建状态 Realm 对象/Combine/ObservableObject 协议:

    @StateRealmObject var model = DataModel()
    

    SwiftUI 仅为声明该对象的结构体的每个实例创建该对象的新实例一次。 当可观察的 Realm 对象的已发布属性发生变化时,SwiftUI 会更新任何视图中依赖于这些属性的部分。如果非托管,则将从对象本身读取属性,否则将从底层 Realm 读取。 对该值的更改将异步更新视图:

    Text(model.title) // Updates the view any time `title` changes.
    

    您可以将状态对象传递给具有SwiftUI/ObservedRealmObject属性的属性。

    使用$操作符获取状态对象属性之一的SwiftUI/Binding 。 如果要创建与对象属性之一的双向连接,请使用绑定。 例如,您可以让SwiftUI/Toggle控制存储在模型中名为isEnabled的布尔值:

    Toggle("Enabled", isOn: $model.isEnabled)
    

    这会将修改后的isEnabled属性写入model对象的 Realm。

    查看更多

    声明

    Swift

    @available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *)
    @propertyWrapper
    public struct StateRealmObject<T> : DynamicProperty where T : RealmSubscribable, T : ThreadConfined, T : Equatable

ObservedResults

  • 一种属性包装器类型,用于从Realm中检索结果。

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

    查看更多

    声明

    Swift

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

ObservedRealmObject

  • 一种属性包装器类型,用于订阅可观察 Realm ObjectList ,并在可观察对象发生更改时使视图失效。

    查看更多

    声明

    Swift

    @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
    @propertyWrapper
    public struct ObservedRealmObject<ObjectType> : DynamicProperty where ObjectType : ObservableObject, ObjectType : RealmSubscribable, ObjectType : ThreadConfined, ObjectType : Equatable
  • SyncConfiguration表示旨在与MongoDB Realm同步的 Realm 的配置参数。

    查看更多

    声明

    Swift

    @frozen
    public struct SyncConfiguration
  • 提供接口的结构,用于使用提供的名称和参数调用MongoDB Realm函数。

    user.functions.sum([1, 2, 3, 4, 5]) { sum, error in
        guard case let .int64(value) = sum else {
            print(error?.localizedDescription)
        }
    
        assert(value == 15)
    }
    

    动态成员名称(上例中为sum )与函数名称直接关联。 第一个参数是要提供给函数的BSONArray参数。 第二个也是最后一个参数是函数调用完成时要调用的完成处理程序。 此处理程序在非主全局DispatchQueue上执行。

    查看更多

    声明

    Swift

    @dynamicMemberLookup
    @frozen
    public struct Functions
  • 要在线程之间传递的对象,其中包含对其线程限制对象的线程安全引用。

    要在不同线程上解析目标 Realm 的线程安全引用,请传递给Realm.resolve(_:)

    警告

    ThreadSafeReference对象最多必须解析一次。 无法解析ThreadSafeReference将导致 Realm 的源版本被固定,直到引用被解除分配。

    注意

    首选短期ThreadSafeReference ,因为源 Realm 版本的数据将保留,直到所有引用都已解析或解除分配。

    查看更多

    声明

    Swift

    @frozen
    public struct ThreadSafeReference<Confined> where Confined : ThreadConfined