测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可 | MIT |
Released最后发布 | 2016年12月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
依赖 | |
RBQSafeRealmObject | >= 0 |
RealmSwift | >= 0.99.1 |
RealmUtilities | >= 0.2.1 |
此类可以让您创建一个给定RLMObject
子类的线程安全表示。例如,这可以使得在后台线程上执行查询,并将结果作为RBQSafeRealmObject
传递给主线程以进行显示。
注意:它仅适用于具有主键的RLMObject
。
提供了Objective-C和Swift版本。Swift 2.0支持从版本0.4开始。
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修复)进行linting需要设置FORK_XCODE_WRITING
以使构建工作。会出现一条来自Realm核心的警告。
FORK_XCODE_WRITING=true pod lib lint SafeRealmObject.podspec --allow-warnings