63
63
@param method The method for which to select matching response descriptors.
64
64
@return An `NSArray` object whose elements are `RKResponseDescriptor` objects matching the given path and method.
65
65
*/
66
+ #ifdef _COREDATADEFINES_H
66
67
static NSArray *RKFilteredArrayOfResponseDescriptorsMatchingPathAndMethod (NSArray *responseDescriptors, NSString *path, RKRequestMethod method)
67
68
{
68
69
NSIndexSet *indexSet = [responseDescriptors indexesOfObjectsPassingTest: ^BOOL (RKResponseDescriptor *responseDescriptor, NSUInteger idx, BOOL *stop) {
69
70
return [responseDescriptor matchesPath: path] && (method & responseDescriptor.method );
70
71
}];
71
72
return [responseDescriptors objectsAtIndexes: indexSet];
72
73
}
74
+ #endif
73
75
74
76
/* *
75
77
Returns the first `RKRequestDescriptor` object from the given array that matches the given object.
@@ -208,9 +210,9 @@ - (void)visitMapping:(RKMapping *)mapping
208
210
@param responseDescriptors An array of `RKResponseDescriptor` objects.
209
211
@return `YES` if the `mapping` property of any of the response descriptor objects in the given array is an instance of `RKEntityMapping`, else `NO`.
210
212
*/
213
+ #ifdef _COREDATADEFINES_H
211
214
static BOOL RKDoesArrayOfResponseDescriptorsContainEntityMapping (NSArray *responseDescriptors)
212
215
{
213
- #ifdef _COREDATADEFINES_H
214
216
// Visit all mappings accessible from the object graphs of all response descriptors
215
217
NSMutableSet *accessibleMappings = [NSMutableSet set ];
216
218
for (RKResponseDescriptor *responseDescriptor in responseDescriptors) {
@@ -234,10 +236,10 @@ static BOOL RKDoesArrayOfResponseDescriptorsContainEntityMapping(NSArray *respon
234
236
}
235
237
}
236
238
}
237
- #endif
238
239
239
240
return NO ;
240
241
}
242
+ #endif
241
243
242
244
BOOL RKDoesArrayOfResponseDescriptorsContainOnlyEntityMappings (NSArray *responseDescriptors);
243
245
BOOL RKDoesArrayOfResponseDescriptorsContainOnlyEntityMappings (NSArray *responseDescriptors)
@@ -559,18 +561,35 @@ - (void)copyStateFromHTTPClientToHTTPRequestOperation:(AFHTTPRequestOperation *)
559
561
- (RKObjectRequestOperation *)objectRequestOperationWithRequest : (NSURLRequest *)request
560
562
success : (void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
561
563
failure : (void (^)(RKObjectRequestOperation *operation, NSError *error))failure
564
+ {
565
+ return [self objectRequestOperationWithRequest: request responseDescriptors: self .responseDescriptors success: success failure: failure];
566
+ }
567
+
568
+ - (RKObjectRequestOperation *)objectRequestOperationWithRequest : (NSURLRequest *)request
569
+ responseDescriptors : (NSArray *)responseDescriptors
570
+ success : (void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
571
+ failure : (void (^)(RKObjectRequestOperation *operation, NSError *error))failure
562
572
{
563
573
Class HTTPRequestOperationClass = [self requestOperationClassForRequest: request fromRegisteredClasses: self .registeredHTTPRequestOperationClasses] ?: [RKHTTPRequestOperation class ];
564
574
RKHTTPRequestOperation *HTTPRequestOperation = [[HTTPRequestOperationClass alloc ] initWithRequest: request];
565
575
[self copyStateFromHTTPClientToHTTPRequestOperation: HTTPRequestOperation];
566
576
Class objectRequestOperationClass = [self requestOperationClassForRequest: request fromRegisteredClasses: self .registeredObjectRequestOperationClasses] ?: [RKObjectRequestOperation class ];
567
- RKObjectRequestOperation *operation = [[objectRequestOperationClass alloc ] initWithHTTPRequestOperation: HTTPRequestOperation responseDescriptors: self . responseDescriptors];
577
+ RKObjectRequestOperation *operation = [[objectRequestOperationClass alloc ] initWithHTTPRequestOperation: HTTPRequestOperation responseDescriptors: responseDescriptors];
568
578
[operation setCompletionBlockWithSuccess: success failure: failure];
569
579
return operation;
570
580
}
571
581
572
582
#ifdef _COREDATADEFINES_H
573
583
- (RKManagedObjectRequestOperation *)managedObjectRequestOperationWithRequest : (NSURLRequest *)request
584
+ managedObjectContext : (NSManagedObjectContext *)managedObjectContext
585
+ success : (void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
586
+ failure : (void (^)(RKObjectRequestOperation *operation, NSError *error))failure
587
+ {
588
+ return [self managedObjectRequestOperationWithRequest: request responseDescriptors: self .responseDescriptors managedObjectContext: managedObjectContext success: success failure: failure];
589
+ }
590
+
591
+ - (RKManagedObjectRequestOperation *)managedObjectRequestOperationWithRequest : (NSURLRequest *)request
592
+ responseDescriptors : (NSArray *)responseDescriptors
574
593
managedObjectContext : (NSManagedObjectContext *)managedObjectContext
575
594
success : (void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
576
595
failure : (void (^)(RKObjectRequestOperation *operation, NSError *error))failure
@@ -579,7 +598,7 @@ - (RKManagedObjectRequestOperation *)managedObjectRequestOperationWithRequest:(N
579
598
RKHTTPRequestOperation *HTTPRequestOperation = [[HTTPRequestOperationClass alloc ] initWithRequest: request];
580
599
[self copyStateFromHTTPClientToHTTPRequestOperation: HTTPRequestOperation];
581
600
Class objectRequestOperationClass = [self requestOperationClassForRequest: request fromRegisteredClasses: self .registeredManagedObjectRequestOperationClasses] ?: [RKManagedObjectRequestOperation class ];
582
- RKManagedObjectRequestOperation *operation = (RKManagedObjectRequestOperation *)[[objectRequestOperationClass alloc ] initWithHTTPRequestOperation: HTTPRequestOperation responseDescriptors: self . responseDescriptors];
601
+ RKManagedObjectRequestOperation *operation = (RKManagedObjectRequestOperation *)[[objectRequestOperationClass alloc ] initWithHTTPRequestOperation: HTTPRequestOperation responseDescriptors: responseDescriptors];
583
602
[operation setCompletionBlockWithSuccess: success failure: failure];
584
603
operation.managedObjectContext = managedObjectContext ?: self.managedObjectStore .mainQueueManagedObjectContext ;
585
604
operation.managedObjectCache = self.managedObjectStore .managedObjectCache ;
@@ -617,7 +636,7 @@ - (id)appropriateObjectRequestOperationWithObject:(id)object
617
636
if (isManagedObjectRequestOperation && self.managedObjectStore ) {
618
637
// Construct a Core Data operation
619
638
NSManagedObjectContext *managedObjectContext = [object respondsToSelector: @selector (managedObjectContext )] ? [object managedObjectContext ] : self.managedObjectStore .mainQueueManagedObjectContext ;
620
- operation = [self managedObjectRequestOperationWithRequest: request managedObjectContext: managedObjectContext success: nil failure: nil ];
639
+ operation = [self managedObjectRequestOperationWithRequest: request responseDescriptors: matchingDescriptors managedObjectContext: managedObjectContext success: nil failure: nil ];
621
640
622
641
if ([object isKindOfClass: [NSManagedObject class ]]) {
623
642
static NSPredicate *temporaryObjectsPredicate = nil ;
@@ -636,7 +655,7 @@ - (id)appropriateObjectRequestOperationWithObject:(id)object
636
655
}
637
656
} else {
638
657
// Non-Core Data operation
639
- operation = [self objectRequestOperationWithRequest: request success: nil failure: nil ];
658
+ operation = [self objectRequestOperationWithRequest: request responseDescriptors: matchingDescriptors success: nil failure: nil ];
640
659
}
641
660
#else
642
661
// Non-Core Data operation
0 commit comments