RBQSafeRealmObject 1.1

RBQSafeRealmObject 1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2016年12月

Adam FishBen Chatelain维护。



 
依赖
Realm>= 0.99.1
RealmUtilities>= 0.2.1
 

Realm 对象的线程安全表示

该类允许您为给定的 RLMObject 子类创建一个线程安全的表示。例如,这可以使用在后台线程上执行查询,并将结果作为 RBQSafeRealmObject 传递给主线程进行显示。

注意:它只能与具有主键的 RLMObject 一起使用。

Object-C 和 Swift 版本都可用。从版本 0.4 开始支持 Swift 2.0。

如何使用

Objective-C

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
    RLMObjectSubclass *anObject = [RLMObjectSubclass objectForPrimaryKey:@"key"];

    RBQSafeRealmObject *safeObject = [RBQSafeRealmObject safeObjectFromObject:anObject];

    dispatch_async(dispatch_get_main_queue(), ^{
        RLMObjectSubclass *mainThreadObject = [safeObject RLMObject];

        // Do Something...
    });
});

Swift 3

DispatchQueue.global().async {
    let anObject = Object()

    let safeObject = SafeObject(object: anObject)

    DispatchQueue.main.async {
        let mainThreadObject = safeObject.object()
    }
}

安装

RBQSafeRealmObject 可通过 CocoaPods 获得。要安装它,只需将以下行添加到 Podfile:

Objective-C

pod "RBQSafeRealmObject"

Swift

pod "SafeRealmObject"

CocoaPod 检查

使用 CocoaPods 1.1.0.rc.2(带有 Xcode 8 修复)进行检查时需要将 FORK_XCODE_WRITING 设置为 true 以工作。来自 Realm 核心的问题会有一个警告。

FORK_XCODE_WRITING=true pod lib lint SafeRealmObject.podspec --allow-warnings