0

RestKitを使ってDELETEリクエストを送ろうとしているのですが、いつも「GET」で送られているようです。これが私のコードです:

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor
                                       responseDescriptorWithMapping:[self objectMapping]
                                       method:RKRequestMethodDELETE
                                       pathPattern:nil
                                       keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];


RKObjectRequestOperation *objectRequestOperation = [[RKObjectRequestOperation alloc] initWithRequest:request responseDescriptors:@[ responseDescriptor ]];
[objectRequestOperation setCompletionBlockWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

    [delegate onRequestSuccess:mappingResult.array];

} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    RKLogError(@"operation failed with error: %@", error);
    [delegate onRequestError:operation message:error];
}];

[objectRequestOperation start];

DELETE 要求を正しく送信する RKObjectManager:deleteObject も使用してみましたが、応答はマップされません。

RKObjectManager *manager = [RKObjectManager managerWithBaseURL:request.url];
[manager addResponseDescriptor:responseDescriptor];
[manager deleteObject:nil path:request.urlString parameters:nil
              success:^(RKObjectRequestOperation *operation , RKMappingResult *mappingResult) {
                  Tag *tag = mappingResult.firstObject; // this is null, does not get mapped

              } failure:^(RKObjectRequestOperation *operation , NSError *error) {
                  RKLogError(@"Error deleting tag %@, error: %@", tagId, error);
              }];
4

1 に答える 1

1

を使用している場合は、自分RKObjectRequestOperationで構成する必要がありrequestます。デフォルトなのでGETです。

使用する場合は、代わりにRKObjectManager使用できます。deleteObject

于 2013-07-29T19:13:11.663 に答える