RLMRealm Class Reference
Inherits from | NSObject |
Declared in | RLMRealm.h RLMRealm.mm |
Tasks
Creating & Initializing a Realm
-
+ defaultRealm
-
+ realmWithPath:
-
+ realmWithPath:readOnly:error:
-
+ useInMemoryDefaultRealm
-
path
property -
readOnly
property -
schema
property
Receiving Notification when a Realm Changes
Writing to a Realm
-
– beginWriteTransaction
-
– commitWriteTransaction
-
– transactionWithBlock:
-
– refresh
-
autorefresh
property
Adding and Removing Objects from a Realm
-
– addObject:
-
– addObjectsFromArray:
-
– deleteObject:
-
– deleteObjects:
-
+ migrateDefaultRealmWithBlock:
-
+ migrateRealmAtPath:withBlock:
Other Methods
Properties
autorefresh
Set to YES to automatically update this Realm when changes happen in other threads.
@property (nonatomic) BOOL autorefresh
Discussion
If set to NO, you must manually call refresh on the Realm to update it to get the lastest version. Notifications are sent immediately when a change is available whether or not the Realm is automatically updated.
Defaults to YES on the main thread, NO on all others.
Declared In
RLMRealm.h
path
Path to the file where this Realm is persisted.
@property (nonatomic, readonly) NSString *path
Declared In
RLMRealm.h
Class Methods
defaultRealm
Obtains an instance of the default Realm.
+ (instancetype)defaultRealm
Return Value
The default RLMRealm instance for the current thread.
Discussion
RLMRealm instances are reused when this is called multiple times from the same thread. The default RLMRealm is persisted as default.realm under the Documents directory of your Application.
Warning: RLMRealm instances are not thread safe and can not be shared across threads or dispatch queues. You must get a separate RLMRealm instance for each thread and queue.
Declared In
RLMRealm.h
migrateDefaultRealmWithBlock:
Performs a migration on the default Realm.
+ (NSError *)migrateDefaultRealmWithBlock:(RLMMigrationBlock)block
Parameters
- block
The block which migrates the Realm to the current version.
Return Value
The error that occured while applying the migration if any.
Discussion
Must be called before the default Realm is accessed (otherwise throws). If the
default Realm is at a version other than version
, the migration is applied.
See Also
Declared In
RLMRealm.h
migrateRealmAtPath:withBlock:
Performs a migration on a Realm at a path.
+ (NSError *)migrateRealmAtPath:(NSString *)realmPath withBlock:(RLMMigrationBlock)block
Parameters
- realmPath
The path of the Realm to migrate.
- block
The block which migrates the Realm to the current version.
Return Value
The error that occured while applying the migration if any.
Discussion
Must be called before the Realm at realmPath
is accessed (otherwise throws).
If the Realm is at a version other than version
, the migration is applied.
See Also
Declared In
RLMRealm.h
realmWithPath:
Obtains an RLMRealm instance persisted at a specific file.
+ (instancetype)realmWithPath:(NSString *)path
Parameters
- path
Path to the file you want the data saved in.
Return Value
An RLMRealm instance.
Discussion
RLMRealm instances are reused when this is called multiple times from the same thread.
Warning: RLMRealm instances are not thread safe and can not be shared across threads or dispatch queues. You must get a separate RLMRealm instance for each thread and queue.
Declared In
RLMRealm.h
realmWithPath:readOnly:error:
Obtains an RLMRealm instance with persistence to a specific file with options.
+ (instancetype)realmWithPath:(NSString *)path readOnly:(BOOL)readonly error:(NSError **)error
Parameters
- path
Path to the file you want the data saved in.
- readonly
BOOL indicating if this Realm is readonly (must use for readonly files)
- error
Pass-by-reference for errors.
Return Value
An RLMRealm instance.
Discussion
Warning: RLMRealm instances are not thread safe and can not be shared across threads or dispatch queues. You must get a separate RLMRealm instance for each thread and queue.
Declared In
RLMRealm.h
Instance Methods
addNotificationBlock:
Add a notification handler for changes in this RLMRealm.
- (RLMNotificationToken *)addNotificationBlock:(RLMNotificationBlock)block
Parameters
- block
A block which is called to process RLMRealm notifications.
Return Value
A token object which can later be passed to removeNotification:. to remove this notification.
Discussion
The block has the following definition:
typedef void(^RLMNotificationBlock)(NSString *notification, RLMRealm *realm);
It receives the following parameters:
NSString
*notification: The name of the incoming notification. RLMRealmDidChangeNotification is the only notification currently supported.RLMRealm
*realm: The realm for which this notification occurred
Declared In
RLMRealm.h
addObject:
Adds an object to be persisted it in this Realm.
- (void)addObject:(RLMObject *)object
Parameters
- object
Object to be added to this Realm.
Discussion
Once added, this object can be retrieved using the objectsWhere: selectors on RLMRealm and on subclasses of RLMObject. When added, all linked (child) objects referenced by this object will also be added to the Realm if they are not already in it. If linked objects already belong to a different Realm an exception will be thrown.
Declared In
RLMRealm.h
addObjectsFromArray:
Adds objects in the given array to be persisted it in this Realm.
- (void)addObjectsFromArray:(id)array
Parameters
- array
NSArray or RLMArray of RLMObjects (or subclasses) to be added to this Realm.
Discussion
This is the equivalent of addObject: except for an array of objects.
See Also
Declared In
RLMRealm.h
allObjects:
Get all objects of a given type in this Realm.
- (RLMArray *)allObjects:(NSString *)className
Parameters
- className
The name of the RLMObject subclass to retrieve on e.g.
MyClass.className
.
Return Value
An RLMArray of all objects in this realm of the given type.
See Also
RLMObject allObjects
Declared In
RLMRealm_Dynamic.h
beginWriteTransaction
Begins a write transaction in an RLMRealm.
- (void)beginWriteTransaction
Discussion
Only one write transaction can be open at a time. Calls to beginWriteTransaction from RLMRealm instances in other threads will block until the current write transaction terminates.
In the case writes were made in other threads or processes to other instances of the same realm, the RLMRealm on which beginWriteTransaction is called and all outstanding objects obtained from this RLMRealm are updated to the latest Realm version when this method is called (if this happens it will also trigger a notification).
Declared In
RLMRealm.h
commitWriteTransaction
Commits all writes operations in the current write transaction.
- (void)commitWriteTransaction
Discussion
After this is called the RLMRealm reverts back to being read-only.
Declared In
RLMRealm.h
deleteObject:
Delete an object from this Realm.
- (void)deleteObject:(RLMObject *)object
Parameters
- object
Object to be deleted from this Realm.
Declared In
RLMRealm.h
deleteObjects:
Delete an NSArray or RLMArray of objects from this Realm.
- (void)deleteObjects:(id)array
Parameters
- array
RLMArray or NSArray of RLMObjects to be deleted.
Declared In
RLMRealm.h
objects:where:
Get objects matching the given predicate from the this Realm.
- (RLMArray *)objects:(NSString *)className where:(NSString *)predicateFormat, ...
Parameters
- className
The type of objects you are looking for (name of the class).
- predicateFormat
The predicate format string which can accept variable arguments.
Return Value
An RLMArray of results matching the given predicate.
Discussion
The preferred way to get objects of a single class is to use the class methods on RLMObject.
See Also
RLMObject objectsWhere:
Declared In
RLMRealm_Dynamic.h
objects:withPredicate:
Get objects matching the given predicate from the this Realm.
- (RLMArray *)objects:(NSString *)className withPredicate:(NSPredicate *)predicate
Parameters
- className
The type of objects you are looking for (name of the class).
- predicate
The predicate to filter the objects.
Return Value
An RLMArray of results matching the given predicate.
Discussion
The preferred way to get objects of a single class is to use the class methods on RLMObject.
See Also
RLMObject objectsWhere:
Declared In
RLMRealm_Dynamic.h
refresh
Update an RLMRealm and outstanding objects to point to the most recent data for this RLMRealm.
- (void)refresh
Declared In
RLMRealm.h
removeNotification:
Remove a previously registered notification handler using the token returned from addNotificationBlock:
- (void)removeNotification:(RLMNotificationToken *)notificationToken
Parameters
- notificationToken
The token returned from addNotificationBlock: corresponding to the notification block to remove.
Declared In
RLMRealm.h