mirror of
https://github.com/zhigang1992/RestKit.git
synced 2026-04-24 04:46:01 +08:00
First pass at replacing RKManagedObjectCache with a more flexible block approach that leverages the new resource path pattern matching approach to registering objectMappings.
This commit is contained in:
committed by
Blake Watters
parent
0660f28fc1
commit
1cd22d5b33
54
Code/CoreData/RKObjectMappingProvider+CoreData.h
Normal file
54
Code/CoreData/RKObjectMappingProvider+CoreData.h
Normal file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// RKObjectMappingProvider+CoreData.h
|
||||
// RestKit
|
||||
//
|
||||
// Created by Jeff Arena on 1/26/12.
|
||||
// Copyright (c) 2012 RestKit. All rights reserved.
|
||||
//
|
||||
|
||||
#import "RKObjectMappingProvider.h"
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
typedef NSFetchRequest *(^RKObjectMappingProviderFetchRequestBlock)(NSString *resourcePath);
|
||||
|
||||
/**
|
||||
Provides extensions to RKObjectMappingProvider to support Core Data specific
|
||||
functionality.
|
||||
*/
|
||||
@interface RKObjectMappingProvider (CoreData)
|
||||
|
||||
/**
|
||||
Configures an object mapping to be used when during a load event where the resourcePath of
|
||||
the RKObjectLoader instance matches resourcePathPattern.
|
||||
|
||||
The resourcePathPattern is a SOCKit pattern matching property names preceded by colons within
|
||||
a path. For example, if a collection of reviews for a product were loaded from a remote system
|
||||
at the resourcePath @"/products/1234/reviews", object mapping could be configured to handle
|
||||
this request with a resourcePathPattern of @"/products/:productID/reviews".
|
||||
|
||||
**NOTE** that care must be taken when configuring patterns within the provider. The patterns
|
||||
will be evaluated in the order they are added to the provider, so more specific patterns must
|
||||
precede more general patterns where either would generate a match.
|
||||
|
||||
@param objectMapping The object mapping to use when the resourcePath matches the specified
|
||||
resourcePathPattern.
|
||||
@param resourcePathPattern A pattern to be evaluated using an RKPathMatcher against a resourcePath
|
||||
to determine if objectMapping is the appropriate mapping.
|
||||
@param fetchRequestBlock A block that accepts an individual resourcePath and returns an NSFetchRequest
|
||||
that should be used to fetch the local objects associated with resourcePath from CoreData, for use in
|
||||
properly processing local deletes
|
||||
@see RKPathMatcher
|
||||
@see RKURL
|
||||
@see RKObjectLoader
|
||||
*/
|
||||
- (void)setObjectMapping:(RKObjectMappingDefinition *)objectMapping forResourcePathPattern:(NSString *)resourcePathPattern withFetchRequestBlock:(RKObjectMappingProviderFetchRequestBlock)fetchRequestBlock;
|
||||
|
||||
/**
|
||||
Retrieves the NSFetchRequest object that will retrieve cached objects for a given resourcePath.
|
||||
|
||||
@param resourcePath A resourcePath to retrieve the fetch request for.
|
||||
@return An NSFetchRequest object for fetching objects for the given resource path or nil.
|
||||
*/
|
||||
- (NSFetchRequest *)fetchRequestForResourcePath:(NSString *)resourcePath;
|
||||
|
||||
@end
|
||||
Reference in New Issue
Block a user