TestsTested | ✗ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Dec 2016 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✗ |
Maintained by Adam Fish, Ben Chatelain.
Depends on: | |
RBQSafeRealmObject | >= 0 |
RealmSwift | >= 0.99.1 |
RealmUtilities | >= 0.2.1 |
This class allows you to create a thread-safe representation of a given RLMObject
subclass. For example, this enables performing queries on a background thread, and passing results as RBQSafeRealmObject
to the main-thread for display.
Note: It will only work with an RLMObject
that has a primary key.
Both an Objective-C and Swift version are availble. Swift 2.0 support added in version 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 is available through CocoaPods. To install it, simply add the following line to your Podfile:
Objective-C
pod "RBQSafeRealmObject"
Swift
pod "SafeRealmObject"
Linting using CocoaPods 1.1.0.rc.2 (with Xcode 8 fixes) needs FORK_XCODE_WRITING
to be set to get the build to work. One warning comes through from Realm core.
FORK_XCODE_WRITING=true pod lib lint SafeRealmObject.podspec --allow-warnings