당신은이 작업을 수행하는 몇 가지 방법이 있습니다
할 수 있습니다 중 이런 일에 RKObjectManager의 메소드를 서브 클래스 :
-(void)addedParamToGetObjectsAtPath:(NSString*)path parameters:(NSDictionary*)parameters success:(success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)successBlock failure::^(RKObjectRequestOperation *operation, NSError *error){
NSMutableDictionary* newParams = [NSMutableDictionary new];
if(parameters){
[newParams addEntriesFromDictionary:parameters];
}
newParams[@"info"]=test;
getObjectsAtPath:(NSString*)path parameters:(NSDictionary*)parameters success:(success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){
// Deal with the success here
successBlock(operation, mappingResult);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
//Deal with the error here
errorBlock(operation, error);
}];
또는 다른 RequestOperationClass
//When configuring RestKit
RKObjectManager *objectManager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:BASE_URL]];
//Some more configuration
//....
[objectManager registerRequestOperationClass:[YourObjectRequestOperation class]];
를 사용하는 Restkit에게
그리고 RKObjectRequestOperation, YourObjectRequestOperation의 하위 클래스를 정의하십시오.
#import "FBObjectRequestOperation.h"
@interface RKHTTPRequestOperation()
@property (nonatomic, strong, readwrite) NSMutableURLRequest* request;
@end
@implementation FBObjectRequestOperation
- (id)initWithHTTPRequestOperation:(RKHTTPRequestOperation *)requestOperation responseDescriptors:(NSArray *)responseDescriptors
{
NSParameterAssert(requestOperation);
NSParameterAssert(responseDescriptors);
//your method to change the requestOperation
RKHTTPRequestOperation* myRequestOperation = [YourObjectRequestOperation addParametersToRequest:requestOperation];
self = [super initWithHTTPRequestOperation:myRequestOperation responseDescriptors:responseDescriptors];
if (self) {
//Change headers or any other thing that you need
}
return self;
}
실제로 당신이 요청에서 URL을 얻고 거기에 새로운 매개 변수를 추가해야하는 requestOperation을 변경합니다. 이 부분은 RKHTTPRequestOperation* myRequestOperation = [YourObjectRequestOperation addParametersToRequest:requestOperation];
에서 발생하며 코드 완성을 위해 귀하와 함께합니다.
이것은 개체 관리자로 수행중인 모든 요청에 적용됩니다. 이 기법은 각 요청에 대해 헤더를 동적으로 계산해야하는 경우에도 매우 유용합니다.