RKRelationshipConnectionOperation Class Reference
Inherits from | NSOperation |
Declared in | RKRelationshipConnectionOperation.h |
Overview
The RKRelationshipConnectionOperation
class is a subclass of NSOperation
that manages the connection of NSManagedObject
relationships as described by an RKConnectionDescription
object. When executed, the operation will find related objects by searching the associated managed object cache for objects matching the connection description and setting them as the value for the relationship being connected.
For example, given a managed object for the Employee
entity with a one-to-one relationship to a Company
named company
(with an inverse relationship one-to-many relationship named employees
) and a connection specifying that the relationship can be connected by finding the Company
managed object whose companyID
attribute matches the companyID
of the Employee
, the operation would find the Company that employs the Employee by primary key and set the Core Data relationship to reflect the relationship appropriately.
Tasks
Initializing a Relationship Connection Operation
-
– initWithManagedObject:connection:managedObjectCache:
Initializes the receiver with a given managed object, connection mapping, and managed object cache.
Accessing Details About the Operation
-
managedObject
The managed object the receiver will attempt to connect a relationship for.
property -
connection
The connection mapping describing the relationship connection the receiver will attempt to connect.
property -
managedObjectCache
The managed object cache the receiver will use to fetch a related object satisfying the connection mapping.
property -
connectedValue
The object or collection of objects that was connected by the operation.
property
Setting the Connection Block
-
– setConnectionBlock:
Sets a block to be executed on the operation attempted to establish the connection.
Properties
connectedValue
The object or collection of objects that was connected by the operation.
@property (nonatomic, strong, readonly) id connectedValue
Discussion
The connected object will either be nil
, indicating that the relationship could not be connected, a single NSManagedObject
object (if the relationship is one-to-one), or an array of NSManagedObject
objects (if the relationship is one-to-many).
Declared In
RKRelationshipConnectionOperation.h
connection
The connection mapping describing the relationship connection the receiver will attempt to connect.
@property (nonatomic, strong, readonly) RKConnectionDescription *connection
Declared In
RKRelationshipConnectionOperation.h
managedObject
The managed object the receiver will attempt to connect a relationship for.
@property (nonatomic, strong, readonly) NSManagedObject *managedObject
Declared In
RKRelationshipConnectionOperation.h
managedObjectCache
The managed object cache the receiver will use to fetch a related object satisfying the connection mapping.
@property (nonatomic, strong, readonly) id<> managedObjectCache
Declared In
RKRelationshipConnectionOperation.h
Instance Methods
initWithManagedObject:connection:managedObjectCache:
Initializes the receiver with a given managed object, connection mapping, and managed object cache.
- (id)initWithManagedObject:(NSManagedObject *)managedObject connection:(RKConnectionDescription *)connection managedObjectCache:(id<RKManagedObjectCaching>)managedObjectCache
Parameters
- managedObject
The object to attempt to connect a relationship to.
- managedObjectCache
The managed object cache from which to attempt to fetch a matching object to satisfy the connection.
- connectionMapping
A mapping describing the relationship and attributes necessary to perform the connection.
Return Value
The receiver, initialized with the given managed object, connection mapping, and managed object cache.
Declared In
RKRelationshipConnectionOperation.h
setConnectionBlock:
Sets a block to be executed on the operation attempted to establish the connection.
- (void)setConnectionBlock:(void ( ^ ) ( RKRelationshipConnectionOperation *operation , id connectedValue ))block
Parameters
- block
A block object to be executed when the connection is evaluated. The block accepts two arguments: the operation itself and the value, if any, that was set for the relationship targetted by the connection description.
Discussion
Unlike the block set with setCompletionBlock:
, this block is executed during the body of the operation within the queue of the managed object context in which the connection was established. This means that it is safe to executed both the connectedValue
and managedObject
directly within the body of the block.
Declared In
RKRelationshipConnectionOperation.h