RLMObjectId
Objective-C
@interface RLMObjectId : NSObject <NSCopying>
Swift
@_nonSendable(_assumed) class RLMObjectId : NSObject, NSCopying, @unchecked Sendable
一个(可能)12 字节的唯一ObjectId。
ObjectId 类似于 GUID 或 UUID,可用于唯一标识对象,而无需集中式 ID 生成器。 ObjectID 由以下部分组成:
- 一个 4 字节时间戳,用于测量自 Unix 纪元以来 ObjectId 的创建时间(以秒为单位)。
- 5 字节随机值
- 一个 3 字节计数器,初始化为随机值。
ObjectId 旨在快速生成。 按 ObjectId 字段排序通常会导致对象按创建顺序排序。
-
创建一个新的随机初始化 ObjectId。
声明
Objective-C
+ (nonnull instancetype)objectId;
Swift
class func generate() -> Self
-
创建一个新的零初始化 ObjectId。
声明
Objective-C
- (nonnull instancetype)init;
Swift
init()
-
从给定的 24 字节十六进制字符串创建新的 ObjectId。
如果string长度不是 24 个字符或包含 0-9a-fA-F 以外的任何字符,则返回
nil
并设置error
。声明
Objective-C
- (nullable instancetype)initWithString:(nonnull NSString *)string error:(NSError *_Nullable *_Nullable)error;
Swift
init(string: String) throws
参数
string
要解析的字符串。
-
使用给定日期、计算机标识符和进程标识符创建新的 ObjectId。
声明
Objective-C
- (nonnull instancetype)initWithTimestamp:(nonnull NSDate *)timestamp machineIdentifier:(int)machineIdentifier processIdentifier:(int)processIdentifier;
Swift
init(timestamp: Date, machineIdentifier: Int32, processIdentifier: Int32)
参数
timestamp
作为 NSDate 的时间戳。
machineIdentifier
机器标识符。
processIdentifier
进程标识符。
-
操作符,用于检查右侧是否大于当前值。
声明
Objective-C
- (BOOL)isGreaterThan:(nullable RLMObjectId *)objectId;
Swift
func isGreaterThan(_ objectId: RLMObjectId?) -> Bool
-
比较运算符,用于检查右侧是否大于或等于当前值。
声明
Objective-C
- (BOOL)isGreaterThanOrEqualTo:(nullable RLMObjectId *)objectId;
Swift
func isGreaterThanOrEqual(to objectId: RLMObjectId?) -> Bool
-
操作符,用于检查右侧是否小于当前值。
声明
Objective-C
- (BOOL)isLessThan:(nullable RLMObjectId *)objectId;
Swift
func isLessThan(_ objectId: RLMObjectId?) -> Bool
-
比较运算符,用于检查右侧是否小于或等于当前值。
声明
Objective-C
- (BOOL)isLessThanOrEqualTo:(nullable RLMObjectId *)objectId;
Swift
func isLessThanOrEqual(to objectId: RLMObjectId?) -> Bool
-
获取ObjectId 24string个字符的十六进制 形式的 。
声明
Objective-C
@property (nonatomic, readonly) NSString *_Nonnull stringValue;
Swift
var stringValue: String { get }
-
获取 RLMObjectId 的时间戳
声明
Objective-C
@property (nonatomic, readonly) NSDate *_Nonnull timestamp;
Swift
var timestamp: Date { get }