CocoaPods trunk is moving to be read-only. Read more on the blog, there are 19 months to go.

SafeRealmObject 1.1

SafeRealmObject 1.1

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
 

RBQSafeRealmObject

Thread-Safe Representation Of A Realm Object

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.

How To Use

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()
    }
}

Installation

RBQSafeRealmObject is available through CocoaPods. To install it, simply add the following line to your Podfile:

Objective-C

pod "RBQSafeRealmObject"

Swift

pod "SafeRealmObject"

CocoaPod Linting

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