以下类在全球范围内可用。

RLMAppConfiguration

  • 表示与特定 Realm 应用程序通信的客户端配置的属性。

    RLMAppConfiguration 一旦创建了使用选项的RLMApp ,就无法对其进行修改。 应用的配置值会在创建应用时缓存,因此此后的任何修改都不会产生任何影响。

    查看更多

    声明

    Objective-C

    @interface RLMAppConfiguration : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMAppConfiguration : NSObject, NSCopying

RLMApp

  • RLMApp具有与 Realm 应用程序后端通信的一组基本方法。

    此接口提供对登录和身份验证的访问。

    查看更多

    声明

    Objective-C

    
    @interface RLMApp : NSObject

    Swift

    @_nonSendable(_assumed) class RLMApp : NSObject, @unchecked Sendable
  • RLMArray 是 Realm 中用于定义多个 container 关系的类型。

    NSArray不同, RLMArray包含由objectClassName属性指定的单一类型。 在这些Docs中,这称为数组的“类型”。

    声明RLMArray属性时,必须使用与其应包含的对象相同的名称将该类型标记为符合协议(请参阅RLM_COLLECTION_TYPE宏)。 此外,可以使用 Objective-C 泛型声明该属性,以提高编译时类型安全性。

    RLM_COLLECTION_TYPE(ObjectType)
    ...
    @property RLMArray<ObjectType *><ObjectType> *arrayOfObjectTypes;
    

    RLMArray可以使用与RLMObjectRLMResult相同的谓词进行查询。

    RLMArrays 不能直接创建。 RLMArray上的RLMObject 属性是在访问时延迟创建的,或者可以通过查询 Realm 来获取。

    键值观察

    RLMArray 支持对RLMObject子类上的RLMArray属性进行数组键值观察,并且当RLMArray附加到托管RLMObject时, RLMArray实例本身的invalidated属性符合键值观察( RLMArray非托管RLMObject上的 永远不会失效)。

    由于RLMArray附加到它们所属的对象,因此它们不需要使用来自-mutableArrayValueForKey:的可变collection代理对象或在包含的对象上使用与 KVC 兼容的变更方法。 相反,您可以直接在RLMArray上调用变更方法。

    查看更多

    声明

    Objective-C

    @interface RLMArray<RLMObjectType> : NSObject <RLMCollection>

    Swift

    @_nonSendable(_assumed) class RLMArray<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
  • RLMAsymmetricObject 是用于定义非对称 Realm 对象的基类。

    非对称对象只能使用createInRealm:函数创建,不能添加、删除或查询。 创建后,非对称对象将单向同步到 MongoDB database,无法在本地访问。

    不允许在Object中链接非对称对象,否则会引发错误。

    RLMAsymmetricObject支持的属性类型与RLMObject相同,不同之处在于非对称对象只能链接到嵌入式对象,因此不支持RLMObjectRLMArray<RLMObject>属性( RLMEmbeddedObjectRLMArray<RLEmbeddedObject>)。

    查看更多

    声明

    Objective-C

    @interface RLMAsymmetricObject : RLMObjectBase

    Swift

    @_nonSendable(_assumed) class RLMAsymmetricObject : RLMObjectBase
  • 一个任务对象,可用于观察或取消异步打开。

    当异步打开同步 Realm 时,会在调用完成回调之前从服务器下载 Realm 的最新状态。 此任务对象可用于观察下载状态或取消下载。 应该使用此选项,而不是尝试通过同步会话观察下载,因为同步会话本身是异步创建的,并且当 -[RLMKRealm asyncOpenWithConfiguration:completion:] 返回时可能还不存在。

    查看更多

    声明

    Objective-C

    
    @interface RLMAsyncOpenTask : NSObject

    Swift

    @_nonSendable(_assumed) class RLMAsyncOpenTask : NSObject, @unchecked Sendable

RLMBSON

  • 与其他 BSON types 相比,MaxKey 将始终是最大值

    声明

    Objective-C

    
    @interface RLMMaxKey : NSObject

    Swift

    class RLMMaxKey : NSObject, @unchecked Sendable
  • 与其他 BSON types 相比,MinKey 将始终是最小值

    声明

    Objective-C

    
    @interface RLMMinKey : NSObject

    Swift

    class RLMMinKey : NSObject, @unchecked Sendable
  • RLMSortDescriptor存储属性名称和排序顺序,以便与sortedResultsUsingDescriptors:一起使用。 它与NSSortDescriptor类似,但仅支持可由 Realm查询引擎高效运行的功能子集。

    RLMSortDescriptor 实例不可变。

    查看更多

    声明

    Objective-C

    
    @interface RLMSortDescriptor : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSortDescriptor : NSObject, @unchecked Sendable
  • RLMCollectionChange对象封装有关Realm通知所报告的集合变更的信息。

    RLMCollectionChange 传递到在RLMArrayRLMResults上向-addNotificationBlock注册的通知块,并报告自上次调用通知区块以来集合中的哪些行发生了更改。

    更改信息有两种格式:集合中每种更改类型的行索引的简单数组,以及请求部分中适合直接传递给UITableView的批量更新方法的索引路径数组。 更新名为tvUITableView的完整示例:

    [tv beginUpdates];
    [tv deleteRowsAtIndexPaths:[changes deletionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertRowsAtIndexPaths:[changes insertionsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv reloadRowsAtIndexPaths:[changes modificationsInSection:0] withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv endUpdates];
    

    RLMCollectionChange中的所有数组始终按升序排序。

    查看更多

    声明

    Objective-C

    @interface RLMCollectionChange : NSObject

    Swift

    @_nonSendable(_assumed) class RLMCollectionChange : NSObject
  • 代表特定 Realm App 用户的不透明凭证。

    查看更多

    声明

    Objective-C

    
    @interface RLMCredentials : NSObject

    Swift

    @_nonSendable(_assumed) class RLMCredentials : NSObject, @unchecked Sendable
  • 128 位 IEEE 754-2008 十进制浮点数。

    此类型类似于 Swift 的内置 Decimal 类型,但分配位的方式不同,从而导致可表示的范围不同。 (NS)Decimal 存储最多 38 位的有效数字和从 -128 到 127 的指数,而此类型可存储最多 34 位的有效数字和从 -6143 到 6144 的指数。

    查看更多

    声明

    Objective-C

    @interface RLMDecimal128 : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMDecimal128 : NSObject, NSCopying, @unchecked Sendable
  • RLMDictionary 是Realm中的一种容器类型,表示键值对的动态集合。

    NSDictionary不同, RLMDictionary包含单个键和值类型。 在这些Docs中,这被称为字典的“type”和“keyType”。

    声明RLMDictionary属性时,必须使用与其应包含的对象相同的名称,将对象类型和 keyType 标记为符合协议。

    RLM_COLLECTION_TYPE(ObjectType)
    ...
    @property RLMDictionary<NSString *, ObjectType *><RLMString, ObjectType> *objectTypeDictionary;
    

    RLMDictionary可以使用与RLMObjectRLMResult相同的谓词进行查询。

    RLMDictionarys 不能直接创建。 RLMDictionary上的RLMObject 属性是在访问时延迟创建的,或者可以通过查询 Realm 来获取。

    RLMDictionary 仅支持NSString作为键。 Realm 不允许在字典键中使用.$字符。

    键值观察

    RLMDictionary 支持对RLMObject子类的RLMDictionary属性进行字典键值观察,并且当RLMDictionary附加到托管RLMObject时, RLMDictionary实例本身的invalidated属性符合键值观察( RLMDictionary非托管RLMObject上的 永远不会失效)。

    查看更多

    声明

    Objective-C

    @interface RLMDictionary<RLMKeyType, RLMObjectType> : NSObject <RLMCollection>

    Swift

    @_nonSendable(_assumed) class RLMDictionary<RLMKeyType, RLMObjectType> : NSObject, RLMCollection where RLMKeyType : AnyObject, RLMObjectType : AnyObject
  • RLMDictionaryChange对象封装有关 Realm 通知所报告的字典变更的信息。

    RLMDictionaryChange 传递到在RLMDictionary上向-addNotificationBlock注册的通知块,并报告自上次调用通知块以来字典中的哪些键发生了更改。

    查看更多

    声明

    Objective-C

    @interface RLMDictionaryChange : NSObject

    Swift

    @_nonSendable(_assumed) class RLMDictionaryChange : NSObject
  • 电子邮件/密码身份验证提供者的客户端,可用于获取登录档案,并执行与电子邮件/密码提供商专门相关的请求。

    查看更多

    声明

    Objective-C

    
    @interface RLMEmailPasswordAuth : RLMProviderClient

    Swift

    @_nonSendable(_assumed) class RLMEmailPasswordAuth : RLMProviderClient, @unchecked Sendable
  • RLMEmbeddedObject 是用于定义 Realm 模型对象的基类。

    嵌入式对象的工作方式与普通对象类似,但由单个父对象(其本身可能是嵌入式对象)拥有。 与普通的顶级对象不同,嵌入式对象不能直接在 Realm 中创建或添加到 Realm 中。 相反,它们只能作为父对象的一部分创建,或者通过将非托管对象分配给父对象的属性来创建。 通过重新分配 RLMObject 属性或从包含嵌入式对象的数组中删除嵌入式对象,删除对象或将对象修改为不再指向嵌入式对象时,嵌入式对象会自动删除。

    嵌入式对象只能有一个链接到它们的父对象,尝试链接到现有的托管嵌入式对象会引发异常。

    RLMEmbeddedObject支持的属性类型与RLMObject相同,不同之处在于嵌入式对象无法链接到顶级对象,因此不支持RLMObjectRLMArray<RLMObject>属性( RLMEmbeddedObjectRLMArray<RLMEmbeddedObject>)。

    嵌入式对象不能具有主键或索引属性。

    查看更多

    声明

    Objective-C

    @interface RLMEmbeddedObject : RLMObjectBase <RLMThreadConfined>

    Swift

    @_nonSendable(_assumed) class RLMEmbeddedObject : RLMObjectBase, RLMThreadConfined

RLMSyncAppError

  • 有关被服务器拒绝的写入的扩展信息。

    服务器有时会因权限、其他服务器端验证失败或对象与任何Flexible Sync订阅不匹配等原因而拒绝客户端进行的写入。发生这种情况时,会报告RLMSyncErrorWriteRejected错误,该错误在RLMCompensatingWriteInfoKey userInfo 键中包含一个RLMCompensatingWriteInfo对象数组,其中包含有关哪些写入被拒绝及其原因的信息。

    此信息仅用于调试和日志记录目的。 reason字符串由服务器生成,并不能保证其稳定性,因此尝试以编程方式使用它们执行任何操作都会中断,而不发出警告。

    查看更多

    声明

    Objective-C

    
    @interface RLMCompensatingWriteInfo : NSObject

    Swift

    class RLMCompensatingWriteInfo : NSObject, @unchecked Sendable
  • RLMMongoCollection上执行findOneAndUpdatefindOneAndReplacefindOneAndDelete命令时使用的选项。

    查看更多

    声明

    Objective-C

    @interface RLMFindOneAndModifyOptions : NSObject

    Swift

    @_nonSendable(_assumed) class RLMFindOneAndModifyOptions : NSObject
  • RLMMongoCollection上执行find命令时使用的选项。

    查看更多

    声明

    Objective-C

    @interface RLMFindOptions : NSObject

    Swift

    @_nonSendable(_assumed) class RLMFindOptions : NSObject
  • 表示由纬度和经度值形成的点的坐标的类。

    • 纬度范围介于 -90 到 90 度(含)之间。
    • 经度范围介于 -180 到 180 度(含)之间。
    • 高度不能为负值。

    尝试创建RLMGeospatialPoint时,超出此范围的值将返回 nil。

    注意

    没有专门的类型来存储地理空间点,而是应将点存储为GeoJson 形状的嵌入式对象,如下所述。 地理空间查询 ( geoWithin ) 只能在此类对象中执行,否则会抛出异常。

    Realm 中的持久化地理点目前是使用鸭子类型来完成的,这意味着可以查询具有特定形状的任何模型类,就好像它包含地理位置一样。 推荐的方法是使用嵌入式对象。

    警告

    此结构无法持久保存,只能用于构建其他地理空间形状,例如( RLMGeospatialBoxRLMGeospatialPolygonRLMGeospatialCircle )。

    警告

    任何查询计算中均不使用海拔高度。

    查看更多

    声明

    Objective-C

    @interface RLMGeospatialPoint : NSObject

    Swift

    class RLMGeospatialPoint : NSObject, @unchecked Sendable
  • 表示矩形的类,可用于地理空间geoWithin查询。

    警告

    此类无法持久保存,只能在地理空间geoWithin查询中使用。
    查看更多

    声明

    Objective-C

    @interface RLMGeospatialBox : NSObject <RLMGeospatial>

    Swift

    class RLMGeospatialBox : NSObject, RLMGeospatial, @unchecked Sendable
  • 表示多边形的类,可用于地理空间geoWithin查询。

    RLMGeospatialPolygon描述了一种由外部Polygon (称为outerRing )和 0 个或多个内部Polygon (称为holes )一致的形状,它表示外部Polygon内有无限数量的内孔。 Polygon描述由至少三个线段组成的形状,其中最后一个和第一个RLMGeospatialPoint必须相同才能表示闭合多边形(这意味着至少需要 4 个点才能定义多边形)。 RLMGeospatialPolygon中的内孔必须完全位于外环内部

    hole具有以下限制:

    • 孔不得交叉,即一个孔的边界不得与任何其他孔的内部和外部相交。
    • 孔不得共享边,即,如果一个孔包含边 AB,则其他孔不得包含该边。
    • 孔可以共享顶点,但任何顶点不得在单个孔中出现两次。
    • 没有一个洞是空的。
    • 只允许嵌套一次。

    警告

    此类无法持久保存,只能在地理空间geoWithin查询中使用。

    查看更多

    声明

    Objective-C

    @interface RLMGeospatialPolygon : NSObject <RLMGeospatial>

    Swift

    class RLMGeospatialPolygon : NSObject, RLMGeospatial, @unchecked Sendable
  • 此结构是表示/转换距离的辅助函数。 它可用于地理空间查询,例如由 RLMGeospatialCircle

    警告

    此结构无法持久保存,只能用于构建其他地理空间形状
    查看更多

    声明

    Objective-C

    @interface RLMDistance : NSObject

    Swift

    class RLMDistance : NSObject, @unchecked Sendable
  • 表示圆形的类,可用于地理空间geoWithin查询。

    警告

    此类无法持久保存,只能在地理空间geoWithin查询中使用。
    查看更多

    声明

    Objective-C

    @interface RLMGeospatialCircle : NSObject <RLMGeospatial>

    Swift

    class RLMGeospatialCircle : NSObject, RLMGeospatial, @unchecked Sendable
  • 控制首次打开Realm 文件时如何填充初始订阅的配置。

    RLMSubscriptionSet
    查看更多

    声明

    Objective-C

    
    @interface RLMInitialSubscriptionsConfiguration : NSObject

    Swift

    @_nonSendable(_assumed) class RLMInitialSubscriptionsConfiguration : NSObject, @unchecked Sendable
  • RLMLogger 用于创建您自己的自定义日志记录逻辑。

    您可以通过创建RLMLogger实例来定义自己的记录器,并定义在出现日志消息时调用的日志函数。 使用setDefaultLogger将此自定义记录器设置为默认记录器。

    RLMLogger.defaultLogger = [[RLMLogger alloc] initWithLevel:RLMLogLevelDebug
                                               logFunction:^(RLMLogLevel level, NSString * message) {
        NSLog(@"Realm Log - %lu, %@", (unsigned long)level, message);
    }];
    

    注意

    默认情况下,日志阈值级别为RLMLogLevelInfo ,日志字符串输出到 Apple System Logger。
    查看更多

    声明

    Objective-C

    @interface RLMLogger : NSObject

    Swift

    class RLMLogger : NSObject
  • RLMMigration 实例封装了旨在促进模式迁移的信息。

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

    查看更多

    声明

    Objective-C

    @interface RLMMigration : NSObject

    Swift

    @_nonSendable(_assumed) class RLMMigration : NSObject
  • RLMMongoClient支持通过 Realm Cloud 服务读取和写入 MongoDB 数据库。

    它提供对RLMMongoDatabase实例的访问权限,而这些实例又提供对保存数据的特定RLMMongoCollection的访问权限。

    注意

    用户必须先登录,然后才能读取或写入数据。

    查看更多

    声明

    Objective-C

    
    @interface RLMMongoClient : NSObject

    Swift

    @_nonSendable(_assumed) class RLMMongoClient : NSObject, @unchecked Sendable
  • 充当中间人并使用 WatchStream 处理事件

    查看更多

    声明

    Objective-C

    
    @interface RLMChangeStream : NSObject <RLMEventDelegate>

    Swift

    @_nonSendable(_assumed) class RLMChangeStream : NSObject, RLMEventDelegate, @unchecked Sendable
  • RLMMongoCollection表示 MongoDB collection。

    您可以从RLMMongoDatabase获取一个实例。

    提供创建、读取、更新和删除方法。

    针对 Realm Cloud 服务器的操作是异步执行的。

    注意

    用户必须先登录,然后才能读取或写入数据。
    • 用法:RLLMongoClient *client = [self.app mongoClient:@“ MongoDB 1”]; RLMMongoDatabase *database = [client databaseWithName:@“test_data”]; RLMMongoCollection *collection = [database collectionWithName:@“Dog”]; [collection insertOneDocument:@{@“name”: @“fido”, @“breed”: @“cane Corso”} completed:…];

    查看更多

    声明

    Objective-C

    
    @interface RLMMongoCollection : NSObject

    Swift

    @_nonSendable(_assumed) class RLMMongoCollection : NSObject, @unchecked Sendable
  • RLMMongoDatabase代表 MongoDB database,其中包含一组包含数据的collection。

    可以从RLMMongoClient中检索。

    使用它获取RLMMongoCollection以读取和写入数据。

    注意

    在读取或写入数据之前,用户必须先登录。

    查看更多

    声明

    Objective-C

    
    @interface RLMMongoDatabase : NSObject

    Swift

    @_nonSendable(_assumed) class RLMMongoDatabase : NSObject, @unchecked Sendable
  • 可以向任意服务器发出的HTTP请求。

    查看更多

    声明

    Objective-C

    @interface RLMRequest : NSObject

    Swift

    @_nonSendable(_assumed) class RLMRequest : NSObject
  • HTTP 响应的内容。

    查看更多

    声明

    Objective-C

    @interface RLMResponse : NSObject

    Swift

    @_nonSendable(_assumed) class RLMResponse : NSObject
  • 外部接口的传输协议。 允许自定义请求/响应处理。

    查看更多

    声明

    Objective-C

    @interface RLMNetworkTransport : NSObject <RLMNetworkTransport>

    Swift

    @_nonSendable(_assumed) class RLMNetworkTransport : NSObject, RLMNetworkTransportProtocol, @unchecked Sendable
  • RLMObject 是表示存储在 Realm 中的数据的模型对象的基类。

    通过子类化RLMObject并添加要托管的属性来定义模型类。 然后实例化并使用自定义子类,而不是直接使用RLMObject类。

    // Dog.h
    @interface Dog : RLMObject
    @property NSString *name;
    @property BOOL      adopted;
    @end
    
    // Dog.m
    @implementation Dog
    @end //none needed
    

    支持的属性类型

    • NSString
    • NSIntegerintlongfloatdouble
    • BOOL or bool
    • NSDate
    • NSData
    • NSNumber<X>,其中XRLMIntRLMFloatRLMDoubleRLMBool之一,适用于可选数字属性
    • RLMObject 子类,以对多对一关系进行建模。
    • RLMArray<X>,其中XRLMObject子类,用于对多对多关系进行建模。

    查询

    您可以直接通过以下类方法启动查询: allObjectsobjectsWhere:objectsWithPredicate: 。 这些方法可让您轻松地在自定义子类中查询默认 Realm 中该类的实例。

    要在默认 Realm 以外的 Realm 中进行搜索,请使用allObjectsInRealm:objectsInRealm:where:objectsInRealm:withPredicate:类方法。

    RLMRealm

    关系

    有关更多详细信息,请参阅我们的Realm Swift 文档

    键值观察

    所有RLMObject属性(包括在子类中创建的属性)都符合键值观察,但realmobjectSchema除外。

    观察 Realm 对象时,请记住以下提示:

    1. NSMutableArray属性不同, RLMArray属性不需要使用从-mutableArrayValueForKey:返回的代理对象,也不需要在包含的类上定义 KVC 更改方法。 您只需直接调用RLMArray上的方法即可;包含对象将自动观察到任何更改。
    2. 非托管RLMObject实例在具有任何观察到的属性时无法添加到 Realm。
    3. 不建议在-observeValueForKeyPath:ofObject:change:context:中修改托管RLMObject 。 即使 Realm 未处于写事务(write transaction)中(例如,在不同线程上进行更改后调用-[RLMRealm refresh]时)以及在应用更改之前发送的通知(使用NSKeyValueObservingOptionPrior时),属性也可能会发生变化可能会在您无法开始写事务(write transaction)时发送。
    查看更多

    声明

    Objective-C

    @interface RLMObject : RLMObjectBase <RLMThreadConfined>

    Swift

    @_nonSendable(_assumed) class RLMObject : RLMObjectBase, RLMThreadConfined
  • 有关RLMObject更改通知中更改的特定属性的信息。

    查看更多

    声明

    Objective-C

    @interface RLMPropertyChange : NSObject

    Swift

    @_nonSendable(_assumed) class RLMPropertyChange : NSObject
  • 一个(可能)12 字节的唯一ObjectId。

    ObjectId 类似于 GUID 或 UUID,可用于唯一标识对象,而无需集中式 ID 生成器。 ObjectID 由以下部分组成:

    1. 一个 4 字节时间戳,用于测量自 Unix 纪元以来 ObjectId 的创建时间(以秒为单位)。
    2. 5 字节随机值
    3. 一个 3 字节计数器,初始化为随机值。

    ObjectId 旨在快速生成。 按 ObjectId 字段排序通常会导致对象按创建顺序排序。

    查看更多

    声明

    Objective-C

    @interface RLMObjectId : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable
  • 该类表示 Realm 模型对象模式。

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

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

    查看更多

    声明

    Objective-C

    
    @interface RLMObjectSchema : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMObjectSchema : NSObject, NSCopying, @unchecked Sendable
  • RLMProperty 实例表示由对象模式上下文中的 Realm 托管的属性。此类属性可能会持久保存在 Realm 文件中,也可能会根据 Realm 中的其他数据进行计算。

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

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

    查看更多

    声明

    Objective-C

    
    @interface RLMProperty : NSObject

    Swift

    @_nonSendable(_assumed) class RLMProperty : NSObject, @unchecked Sendable
  • RLMPropertyDescriptor实例表示给定类的特定属性。

    查看更多

    声明

    Objective-C

    
    @interface RLMPropertyDescriptor : NSObject

    Swift

    @_nonSendable(_assumed) class RLMPropertyDescriptor : NSObject, @unchecked Sendable
  • 基本提供商客户端接口。

    查看更多

    声明

    Objective-C

    @interface RLMProviderClient : NSObject

    Swift

    @_nonSendable(_assumed) class RLMProviderClient : NSObject, @unchecked Sendable
  • 客户端,可用于向服务器注册设备以接收推送通知

    查看更多

    声明

    Objective-C

    
    @interface RLMPushClient : NSObject

    Swift

    @_nonSendable(_assumed) class RLMPushClient : NSObject, @unchecked Sendable
  • 一个RLMRealm实例(也称为“Realm”)代表一个 Realm 数据库。

    Realm 可以存储在磁盘上(请参阅+[RLMRealm realmWithURL:] )或内存中(请参阅RLMRealmConfiguration )。

    RLMRealm 实例在内部缓存,并且在事件循环的单次迭代内的单个线程上多次构造等效的RLMRealm对象(例如,通过使用相同的路径或标识符)通常会返回相同的RLMRealm对象。

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

    警告

    未冻结的RLMRealm实例受线程限制,不能跨线程或调度队列共享。 尝试这样做会导致抛出异常。 您必须在要与 Realm 交互的每个线程上调用此方法。 对于调度队列,这意味着您必须在每个调度的区块中调用它,因为不能保证队列在同一线程上运行其所有区块。
    查看更多

    声明

    Objective-C

    @interface RLMRealm : NSObject

    Swift

    @_nonSendable(_assumed) class RLMRealm : NSObject
  • 订阅Realm变更的方法返回的令牌。

    Realm 中的变更订阅会返回一个RLMNotificationToken实例,可用于取消订阅变更。 只要想继续接收通知,就必须存储对该令牌的强引用。 如果您希望停止,请调用-invalidate方法。 如果令牌被释放,通知也会停止。

    查看更多

    声明

    Objective-C

    @interface RLMNotificationToken : NSObject

    Swift

    @_nonSendable(_assumed) class RLMNotificationToken : NSObject, @unchecked Sendable
  • RLMRealmConfiguration实例描述了用于创建 Realm 实例的不同选项。

    RLMRealmConfiguration 实例只是普通的NSObject 。 与RLMRealmRLMObject不同,只要不改变它们,它们就可以在线程之间自由共享。

    为类子集创建配置对象(通过设置objectClasses属性)的成本可能很高。 因此,您通常希望为每个不同的配置缓存和重用单个配置对象,而不是在每次打开 Realm 时都创建一个新对象。

    查看更多

    声明

    Objective-C

    @interface RLMRealmConfiguration : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMRealmConfiguration : NSObject, NSCopying
  • RLMResults 是 Realm 中从对象查询返回的自动更新container类型。它以collection的形式表示查询的结果。

    RLMResults 可以使用与RLMObjectRLMArray相同的谓词进行查询,并且可以链式查询以进一步筛选结果。

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

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

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

    RLMResults 不能直接实例化。

    查看更多

    声明

    Objective-C

    @interface RLMResults<RLMObjectType>
        : NSObject <RLMCollection, NSFastEnumeration>

    Swift

    @_nonSendable(_assumed) class RLMResults<RLMObjectType> : NSObject, RLMCollection, NSFastEnumeration where RLMObjectType : AnyObject
  • RLMLinkingObjects 是一种自动更新的容器类型。 它表示链接到其父对象的对象集合。

    有关更多信息,请参阅文档中的“反向关系”部分。

    声明

    Objective-C

    @interface RLMLinkingObjects<RLMObjectType : RLMObject *> : RLMResults

    Swift

    @_nonSendable(_assumed) class RLMLinkingObjects<RLMObjectType> : RLMResults<AnyObject> where RLMObjectType : RLMObject
  • RLMSchema 实例表示由 Realm 托管的对象模式的collection。

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

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

    查看更多

    声明

    Objective-C

    @interface RLMSchema : NSObject <NSCopying>

    Swift

    @_nonSendable(_assumed) class RLMSchema : NSObject, NSCopying, @unchecked Sendable
  • RLMSectionedResultsChange对象封装有关 Realm 通知报告的分段结果变更的信息。

    RLMSectionedResultsChange 传递到在RLMSectionedResults上向-addNotificationBlock注册的通知块,并报告自上次调用通知块以来集合中的哪些部分和行发生了更改。

    更新名为tvUITableView的完整示例:

    [tv beginUpdates];
    [tv deleteRowsAtIndexPaths:changes.deletions withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertRowsAtIndexPaths:changes.insertions withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv reloadRowsAtIndexPaths:changes.modifications withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv insertSections:changes.sectionsToInsert withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv deleteSections:changes.sectionsToRemove withRowAnimation:UITableViewRowAnimationAutomatic];
    [tv endUpdates];
    

    RLMSectionedResultsChange中的所有数组始终按升序排序。

    查看更多

    声明

    Objective-C

    @interface RLMSectionedResultsChange : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSectionedResultsChange : NSObject
  • RLMSection 包含属于指定节键的对象。

    查看更多

    声明

    Objective-C

    @interface RLMSection<RLMKeyType : id <RLMValue>, RLMObjectType>
        : NSObject <RLMSectionedResult>

    Swift

    @_nonSendable(_assumed) class RLMSection<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : AnyObject
  • 一种延迟评估的集合,其中包含由部分键确定的部分中的元素。

    查看更多

    声明

    Objective-C

    @interface RLMSectionedResults<RLMKeyType : id <RLMValue>,
                                   RLMObjectType : id <RLMValue>>
        : NSObject <RLMSectionedResult>

    Swift

    @_nonSendable(_assumed) class RLMSectionedResults<RLMKeyType, RLMObjectType> : NSObject, RLMSectionedResult where RLMKeyType : RLMValue, RLMObjectType : RLMValue
  • 用于存储不同对象的collection数据类型。

    注意

    RLMSet 支持存储基元和RLMObject类型。 RLMSet不支持存储嵌入式 Realm 对象。
    查看更多

    声明

    Objective-C

    @interface RLMSet<RLMObjectType> : NSObject <RLMCollection>

    Swift

    @_nonSendable(_assumed) class RLMSet<RLMObjectType> : NSObject, RLMCollection where RLMObjectType : AnyObject
  • 表示Realm配置状态的配置对象,旨在与Realm对象MongoDB Server同步。

    查看更多

    声明

    Objective-C

    @interface RLMSyncConfiguration : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncConfiguration : NSObject
  • 充当同步相关配置中心点的管理器。

    查看更多

    声明

    Objective-C

    
    @interface RLMSyncManager : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncManager : NSObject, @unchecked Sendable
  • 用于在同步客户端中配置超时和时间间隔的选项。

    查看更多

    声明

    Objective-C

    @interface RLMSyncTimeoutOptions : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncTimeoutOptions : NSObject
  • 与会话对象上的进度通知块相对应的令牌对象。

    要手动停止通知,请对其调用-invalidate 。 在令牌超出范围或被销毁之前,应停止通知。

    声明

    Objective-C

    
    @interface RLMProgressNotificationToken : RLMNotificationToken

    Swift

    @_nonSendable(_assumed) class RLMProgressNotificationToken : RLMNotificationToken, @unchecked Sendable
  • 封装 Atlas App Services“会话”的对象。 会话表示客户端(以及磁盘上的本地 Realm 文件)和服务器(以及存储在 Atlas App Services 上的具有给定分区值的远程 Realm)之间的通信。

    会话始终由 SDK 创建并通过各种 API 发出。 与 Realm 关联的会话的生命周期是自动管理的。 可以从任何线程访问会话对象。

    查看更多

    声明

    Objective-C

    
    @interface RLMSyncSession : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncSession : NSObject, @unchecked Sendable

错误操作令牌

  • 作为某些错误的一部分返回的不透明令牌。 可以将其传递到某些 API 中以执行某些操作。

    RLMSyncErrorClientResetError, RLMSyncErrorPermissionDeniedError

    声明

    Objective-C

    
    @interface RLMSyncErrorActionToken : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncErrorActionToken : NSObject, @unchecked Sendable

订阅状态

  • RLMSyncSubscription 用于定义通过查询订阅集获得的Flexible Sync订阅,可用于读取或删除/更新已提交的订阅。

    查看更多

    声明

    Objective-C

    @interface RLMSyncSubscription : NSObject

    Swift

    @_nonSendable(_assumed) class RLMSyncSubscription : NSObject
  • RLMSyncSubscriptionSetRLMSyncSubscription的集合。 这是添加和删除RLMSyncSubscription的入口点。

    查看更多

    声明

    Objective-C

    @interface RLMSyncSubscriptionSet : NSObject <NSFastEnumeration>

    Swift

    @_nonSendable(_assumed) class RLMSyncSubscriptionSet : NSObject, NSFastEnumeration
  • 要在线程之间传递的对象,其中包含对其线程限制对象的线程安全引用。

    要在不同线程上解析目标 Realm 的线程安全引用,请传递给-[RLMRealm resolveThreadSafeReference:]

    警告

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

    注意

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

    查看更多

    声明

    Objective-C

    
    @interface RLMThreadSafeReference<__covariant Confined : id <RLMThreadConfined>>
        : NSObject

    Swift

    @_nonSendable(_assumed) class RLMThreadSafeReference<Confined> : NSObject, @unchecked Sendable where Confined : RLMThreadConfined
  • updateOneupdateMany操作的结果为RLMMongoCollection

    查看更多

    声明

    Objective-C

    
    @interface RLMUpdateResult : NSObject

    Swift

    @_nonSendable(_assumed) class RLMUpdateResult : NSObject, @unchecked Sendable
  • 一个RLMUser实例代表一个 Realm 应用用户账户。

    用户可能具有一个或多个与之关联的凭证。 这些凭证向身份验证提供者唯一标识用户,并用于登录 Atlas App Services 用户帐户。

    请注意,用户对象仅通过 SDK API 发出,无法直接初始化。 可以从任何线程访问用户对象。

    查看更多

    声明

    Objective-C

    @interface RLMUser : NSObject

    Swift

    @_nonSendable(_assumed) class RLMUser : NSObject, @unchecked Sendable

用户信息类

  • 用户的身份。 一个用户可以有多个身份,通常与多个提供商相关联。请注意,这与用户的唯一标识符字符串不同。 @seeAlso RLMUser.identifier

    查看更多

    声明

    Objective-C

    
    @interface RLMUserIdentity : NSObject

    Swift

    @_nonSendable(_assumed) class RLMUserIdentity : NSObject, @unchecked Sendable
  • 给定用户的个人资料。

    查看更多

    声明

    Objective-C

    
    @interface RLMUserProfile : NSObject

    Swift

    @_nonSendable(_assumed) class RLMUserProfile : NSObject, @unchecked Sendable
  • 从服务器接收的 APIKey 的 UserAPIKey 模型。

    查看更多

    声明

    Objective-C

    
    @interface RLMUserAPIKey : NSObject

    Swift

    @_nonSendable(_assumed) class RLMUserAPIKey : NSObject, @unchecked Sendable