类
以下类在全球范围内可用。
-
用户 API 密钥的提供商客户端。
查看更多声明
Objective-C
@interface RLMAPIKeyAuth : RLMProviderClient
Swift
@_nonSendable(_assumed) class RLMAPIKeyAuth : RLMProviderClient, @unchecked Sendable
-
声明
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
可以使用与RLMObject
和RLMResult
相同的谓词进行查询。RLMArray
s 不能直接创建。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
相同,不同之处在于非对称对象只能链接到嵌入式对象,因此不支持RLMObject
和RLMArray<RLMObject>
属性(RLMEmbeddedObject
和RLMArray<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
-
与其他 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
传递到在RLMArray
和RLMResults
上向-addNotificationBlock
注册的通知块,并报告自上次调用通知区块以来集合中的哪些行发生了更改。更改信息有两种格式:集合中每种更改类型的行索引的简单数组,以及请求部分中适合直接传递给
UITableView
的批量更新方法的索引路径数组。 更新名为tv
的UITableView
的完整示例:[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
可以使用与RLMObject
和RLMResult
相同的谓词进行查询。RLMDictionary
s 不能直接创建。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
相同,不同之处在于嵌入式对象无法链接到顶级对象,因此不支持RLMObject
和RLMArray<RLMObject>
属性(RLMEmbeddedObject
和RLMArray<RLMEmbeddedObject>
是)。嵌入式对象不能具有主键或索引属性。
查看更多声明
Objective-C
@interface RLMEmbeddedObject : RLMObjectBase <RLMThreadConfined>
Swift
@_nonSendable(_assumed) class RLMEmbeddedObject : RLMObjectBase, RLMThreadConfined
-
有关被服务器拒绝的写入的扩展信息。
服务器有时会因权限、其他服务器端验证失败或对象与任何Flexible Sync订阅不匹配等原因而拒绝客户端进行的写入。发生这种情况时,会报告
RLMSyncErrorWriteRejected
错误,该错误在RLMCompensatingWriteInfoKey
userInfo 键中包含一个RLMCompensatingWriteInfo
对象数组,其中包含有关哪些写入被拒绝及其原因的信息。此信息仅用于调试和日志记录目的。
查看更多reason
字符串由服务器生成,并不能保证其稳定性,因此尝试以编程方式使用它们执行任何操作都会中断,而不发出警告。声明
Objective-C
@interface RLMCompensatingWriteInfo : NSObject
Swift
class RLMCompensatingWriteInfo : NSObject, @unchecked Sendable
-
在
查看更多RLMMongoCollection
上执行findOneAndUpdate
、findOneAndReplace
或findOneAndDelete
命令时使用的选项。声明
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。Realm 中的持久化地理点目前是使用鸭子类型来完成的,这意味着可以查询具有特定形状的任何模型类,就好像它包含地理位置一样。 推荐的方法是使用嵌入式对象。
警告
此结构无法持久保存,只能用于构建其他地理空间形状,例如(
RLMGeospatialBox
、RLMGeospatialPolygon
和RLMGeospatialCircle
)。警告
任何查询计算中均不使用海拔高度。
声明
Objective-C
@interface RLMGeospatialPoint : NSObject
Swift
class RLMGeospatialPoint : NSObject, @unchecked Sendable
-
声明
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
-
声明
Objective-C
@interface RLMDistance : NSObject
Swift
class RLMDistance : NSObject, @unchecked Sendable
-
声明
Objective-C
@interface RLMGeospatialCircle : NSObject <RLMGeospatial>
Swift
class RLMGeospatialCircle : NSObject, RLMGeospatial, @unchecked Sendable
-
声明
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
NSInteger
、int
、long
、float
和double
BOOL
orbool
NSDate
NSData
NSNumber<X>
,其中X
是RLMInt
、RLMFloat
、RLMDouble
或RLMBool
之一,适用于可选数字属性RLMObject
子类,以对多对一关系进行建模。RLMArray<X>
,其中X
是RLMObject
子类,用于对多对多关系进行建模。
查询
您可以直接通过以下类方法启动查询:
allObjects
、objectsWhere:
和objectsWithPredicate:
。 这些方法可让您轻松地在自定义子类中查询默认 Realm 中该类的实例。要在默认 Realm 以外的 Realm 中进行搜索,请使用
allObjectsInRealm:
、objectsInRealm:where:
和objectsInRealm:withPredicate:
类方法。看
RLMRealm
关系
有关更多详细信息,请参阅我们的Realm Swift 文档。
键值观察
所有
RLMObject
属性(包括在子类中创建的属性)都符合键值观察,但realm
和objectSchema
除外。观察 Realm 对象时,请记住以下提示:
- 与
NSMutableArray
属性不同,RLMArray
属性不需要使用从-mutableArrayValueForKey:
返回的代理对象,也不需要在包含的类上定义 KVC 更改方法。 您只需直接调用RLMArray
上的方法即可;包含对象将自动观察到任何更改。 - 非托管
RLMObject
实例在具有任何观察到的属性时无法添加到 Realm。 - 不建议在
-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
-
声明
Objective-C
@interface RLMPropertyChange : NSObject
Swift
@_nonSendable(_assumed) class RLMPropertyChange : NSObject
-
一个(可能)12 字节的唯一ObjectId。
ObjectId 类似于 GUID 或 UUID,可用于唯一标识对象,而无需集中式 ID 生成器。 ObjectID 由以下部分组成:
- 一个 4 字节时间戳,用于测量自 Unix 纪元以来 ObjectId 的创建时间(以秒为单位)。
- 5 字节随机值
- 一个 3 字节计数器,初始化为随机值。
ObjectId 旨在快速生成。 按 ObjectId 字段排序通常会导致对象按创建顺序排序。
查看更多声明
Objective-C
@interface RLMObjectId : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable
-
声明
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
。 与RLMRealm
和RLMObject
不同,只要不改变它们,它们就可以在线程之间自由共享。为类子集创建配置对象(通过设置
查看更多objectClasses
属性)的成本可能很高。 因此,您通常希望为每个不同的配置缓存和重用单个配置对象,而不是在每次打开 Realm 时都创建一个新对象。声明
Objective-C
@interface RLMRealmConfiguration : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMRealmConfiguration : NSObject, NSCopying
-
RLMResults
是 Realm 中从对象查询返回的自动更新container类型。它以collection的形式表示查询的结果。RLMResults
可以使用与RLMObject
和RLMArray
相同的谓词进行查询,并且可以链式查询以进一步筛选结果。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
注册的通知块,并报告自上次调用通知块以来集合中的哪些部分和行发生了更改。更新名为
tv
的UITableView
的完整示例:[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
-
声明
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
-
查看更多RLMSyncSubscriptionSet
是RLMSyncSubscription
的集合。 这是添加和删除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
-
查看更多updateOne
或updateMany
操作的结果为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