测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2016年12月 |
依赖 | |
Realm | >= 0.99.1 |
RealmUtilities | >= 0.2.1 |
该类允许您为给定的 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"
使用 CocoaPods 1.1.0.rc.2(带有 Xcode 8 修复)进行检查时需要将 FORK_XCODE_WRITING
设置为 true 以工作。来自 Realm 核心的问题会有一个警告。
FORK_XCODE_WRITING=true pod lib lint SafeRealmObject.podspec --allow-warnings