RLMObjectId

Objective-C

@interface RLMObjectId : NSObject <NSCopying>

迅速

@_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable

一个(可能)12 字节的唯一ObjectId。

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

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

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

  • 创建一个新的随机初始化 ObjectId。

    声明

    Objective-C

    + (nonnull instancetype)objectId;

    迅速

    class func generate() -> Self
  • 创建一个新的零初始化 ObjectId。

    声明

    Objective-C

    - (nonnull instancetype)init;

    迅速

    init()
  • 从给定的 24 字节十六进制字符串创建新的 ObjectId。

    如果string长度不是 24 个字符或包含 0-9a-fA-F 以外的任何字符,则返回 nil 并设置 error

    声明

    Objective-C

    - (nullable instancetype)initWithString:(nonnull NSString *)string
                                      error:(NSError *_Nullable *_Nullable)error;

    迅速

    init(string: String) throws

    参数

    string

    要解析的字符串。

  • 使用给定日期、计算机标识符和进程标识符创建新的 ObjectId。

    声明

    Objective-C

    - (nonnull instancetype)initWithTimestamp:(nonnull NSDate *)timestamp
                            machineIdentifier:(int)machineIdentifier
                            processIdentifier:(int)processIdentifier;

    迅速

    init(timestamp: Date, machineIdentifier: Int32, processIdentifier: Int32)

    参数

    timestamp

    作为 NSDate 的时间戳。

    machineIdentifier

    机器标识符。

    processIdentifier

    进程标识符。

  • 比较操作符,用于检查右侧是否大于当前值。

    声明

    Objective-C

    - (BOOL)isGreaterThan:(nullable RLMObjectId *)objectId;

    迅速

    func isGreaterThan(_ objectId: RLMObjectId?) -> Bool
  • 比较运算符,用于检查右侧是否大于或等于当前值。

    声明

    Objective-C

    - (BOOL)isGreaterThanOrEqualTo:(nullable RLMObjectId *)objectId;

    迅速

    func isGreaterThanOrEqual(to objectId: RLMObjectId?) -> Bool
  • 比较操作符,用于检查右侧是否小于当前值。

    声明

    Objective-C

    - (BOOL)isLessThan:(nullable RLMObjectId *)objectId;

    迅速

    func isLessThan(_ objectId: RLMObjectId?) -> Bool
  • 比较运算符,用于检查右侧是否小于或等于当前值。

    声明

    Objective-C

    - (BOOL)isLessThanOrEqualTo:(nullable RLMObjectId *)objectId;

    迅速

    func isLessThanOrEqual(to objectId: RLMObjectId?) -> Bool
  • 获取24字符十六进制string形式的 ObjectId。

    声明

    Objective-C

    @property (nonatomic, readonly) NSString *_Nonnull stringValue;

    迅速

    var stringValue: String { get }
  • 获取 RLMObjectId 的时间戳

    声明

    Objective-C

    @property (nonatomic, readonly) NSDate *_Nonnull timestamp;

    迅速

    var timestamp: Date { get }