RKEntityCache Class Reference
Inherits from | NSObject |
Declared in | RKEntityCache.h |
Overview
Instances of RKInMemoryEntityCache provide an in-memory caching mechanism for objects in a Core Data managed object context. Managed objects can be cached by attribute for fast retrieval without repeatedly hitting the Core Data persistent store. This can provide a substantial speed advantage over issuing fetch requests in cases where repeated look-ups of the same data are performed using a small set of attributes as the query key. Internally, the cache entries are maintained as references to the NSManagedObjectID of corresponding cached objects.
Tasks
Initializing the Cache
-
– initWithManagedObjectContext:
Initializes the receiver with a managed object context containing the entity instances to be cached.
-
managedObjectContext
The managed object context with which the receiver is associated.
property
Caching Objects by Attribute
-
– cacheObjectsForEntity:byAttribute:
Caches all instances of an entity using the value for an attribute as the cache key.
-
– isEntity:cachedByAttribute:
Returns a Boolean value indicating if all instances of an entity have been cached by a given attribute name.
-
– objectForEntity:withAttribute:value:inContext:
Retrieves the first cached instance of a given entity where the specified attribute matches the given value.
-
– objectsForEntity:withAttribute:value:inContext:
Retrieves all cached instances of a given entity where the specified attribute matches the given value.
-
– attributeCacheForEntity:attribute:
Retrieves the underlying entity attribute cache for a given entity and attribute.
-
– attributeCachesForEntity:
Retrieves all entity attributes caches for a given entity.
-
– flush
Flushes the entity cache by sending a flush message to each entity attribute cache contained within the receiver.
-
– addObject:
Adds a given object to all entity attribute caches for the object’s entity contained within the receiver.
-
– removeObject:
Removed a given object from all entity attribute caches for the object’s entity contained within the receiver.
Instance Methods
addObject:
Adds a given object to all entity attribute caches for the object’s entity contained within the receiver.
- (void)addObject:(NSManagedObject *)object
Parameters
- object
The object to add to the appropriate entity attribute caches.
Declared In
RKEntityCache.h
attributeCacheForEntity:attribute:
Retrieves the underlying entity attribute cache for a given entity and attribute.
- (RKEntityByAttributeCache *)attributeCacheForEntity:(NSEntityDescription *)entity attribute:(NSString *)attributeName
Parameters
- entity
The entity to retrieve the entity attribute cache object for.
- attributeName
The attribute to retrieve the entity attribute cache object for.
Return Value
The entity attribute cache for the given entity and attribute, or nil if none was found.
Declared In
RKEntityCache.h
attributeCachesForEntity:
Retrieves all entity attributes caches for a given entity.
- (NSArray *)attributeCachesForEntity:(NSEntityDescription *)entity
Parameters
- entity
The entity to retrieve the collection of entity attribute caches for.
Return Value
An array of entity attribute cache objects for the given entity or an empty array if none were found.
Declared In
RKEntityCache.h
cacheObjectsForEntity:byAttribute:
Caches all instances of an entity using the value for an attribute as the cache key.
- (void)cacheObjectsForEntity:(NSEntityDescription *)entity byAttribute:(NSString *)attributeName
Parameters
- entity
The entity to cache all instances of.
- attributeName
The attribute to cache the instances by.
Declared In
RKEntityCache.h
flush
Flushes the entity cache by sending a flush message to each entity attribute cache contained within the receiver.
- (void)flush
See Also
Declared In
RKEntityCache.h
initWithManagedObjectContext:
Initializes the receiver with a managed object context containing the entity instances to be cached.
- (id)initWithManagedObjectContext:(NSManagedObjectContext *)context
Parameters
- context
The managed object context containing objects to be cached.
Return Value
self, initialized with context.
Declared In
RKEntityCache.h
isEntity:cachedByAttribute:
Returns a Boolean value indicating if all instances of an entity have been cached by a given attribute name.
- (BOOL)isEntity:(NSEntityDescription *)entity cachedByAttribute:(NSString *)attributeName
Parameters
- entity
The entity to check the cache status of.
- attributeName
The attribute to check the cache status with.
Return Value
YES if the cache has been loaded with instances with the given attribute, else NO.
Declared In
RKEntityCache.h
objectForEntity:withAttribute:value:inContext:
Retrieves the first cached instance of a given entity where the specified attribute matches the given value.
- (NSManagedObject *)objectForEntity:(NSEntityDescription *)entity withAttribute:(NSString *)attributeName value:(id)attributeValue inContext:(NSManagedObjectContext *)context
Parameters
- entity
The entity to search the cache for instances of.
- attributeName
The attribute to search the cache for matches with.
- attributeValue
The value of the attribute to return a match for.
- context
The managed object from which to retrieve the cached results.
Return Value
A matching managed object instance or nil. @raise NSInvalidArgumentException Raised if instances of the entity and attribute have not been cached.
Declared In
RKEntityCache.h
objectsForEntity:withAttribute:value:inContext:
Retrieves all cached instances of a given entity where the specified attribute matches the given value.
- (NSArray *)objectsForEntity:(NSEntityDescription *)entity withAttribute:(NSString *)attributeName value:(id)attributeValue inContext:(NSManagedObjectContext *)context
Parameters
- entity
The entity to search the cache for instances of.
- attributeName
The attribute to search the cache for matches with.
- attributeValue
The value of the attribute to return a match for.
- context
The managed object from which to retrieve the cached results.
Return Value
All matching managed object instances or nil. @raise NSInvalidArgumentException Raised if instances of the entity and attribute have not been cached.
Declared In
RKEntityCache.h