Ios RESTKit异常:在搜索的关键路径中未找到可映射的对象表示

Ios RESTKit异常:在搜索的关键路径中未找到可映射的对象表示,ios,objective-c,restkit,restkit-0.20,Ios,Objective C,Restkit,Restkit 0.20,我面临一些问题。服务器收到请求,但映射未正确处理。我不明白我做错了什么 日志: 代码: RKObjectMapping* objectMapping = [RKObjectMapping mappingForClass:[ResponseModel class]]; [objectMapping addAttributeMappingsFromArray:@[@"success", @"errors"]]; [objectMapping addPropertyMapping:[R

我面临一些问题。服务器收到请求,但映射未正确处理。我不明白我做错了什么

日志:

代码:

RKObjectMapping* objectMapping = [RKObjectMapping mappingForClass:[ResponseModel class]];
    [objectMapping addAttributeMappingsFromArray:@[@"success", @"errors"]];
    [objectMapping addPropertyMapping:[RKRelationshipMapping
                                       relationshipMappingFromKeyPath:@"data"
                                                            toKeyPath:@"data"
                                                          withMapping:[RKObjectMapping mappingForClass:[NSArray class]]]
     ];
    RKResponseDescriptor* responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:objectMapping
                                                                           method:RKRequestMethodPOST
                                                                      pathPattern:@"user.sign_up/"
                                                                          keyPath:nil
                                                                      statusCodes:[NSIndexSet indexSetWithIndex:200]];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://cifrosvit.com/api/"]];
    RKObjectManager *objectManager = [[RKObjectManager alloc] initWithHTTPClient:client];
    [objectManager addResponseDescriptor:responseDescriptor];
    RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);

    [objectManager getObjectsAtPath:responseDescriptor.pathPattern parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        NSLog(@"success");
    } failure:^(RKObjectRequestOperation *operation, NSError *error) {
        NSLog(@"failure");
    }];
响应模型接口:

@interface ResponseModel : NSObject

@property NSString* success;
@property id data;
@property (strong, nonatomic) NSArray* errors;

@end
请求:

{
  "success": "true",
  "data": [],
  "errors": []
}

为什么RESTKIT总是调用故障块?

可能您只需要更改这一行,因为它看起来像是在设置一个nil响应描述符

[objectManager addResponseDescriptor:self.responseDescriptor];
因此,删除
self.
,因为似乎您没有设置实例变量,您只有一个局部变量


您也在使用
method:RKRequestMethodPOST
,但是使用
getObjectsAtPath
发出请求,因此RestKit无法将
GET
POST

匹配,您可能只需要更改这一行,因为看起来您正在设置一个nil响应描述符

[objectManager addResponseDescriptor:self.responseDescriptor];
因此,删除
self.
,因为似乎您没有设置实例变量,您只有一个局部变量


您也在使用
method:RKRequestMethodPOST
但使用
getObjectsAtPath
发出请求,因此RestKit无法将
GET
POST

匹配,我发现这是一个问题。我不明白为什么,但当我将请求方法从RKRequestMethodPOST更改为RKRequestMethodAny时,它就开始工作了。实际上,这个请求的类型是POST。好的,这是一个很好的观点,但它不是POST,而是GET,因为您使用的是
getObjectsAtPath
您的答案完全正确。我从文档中漏掉了这个项目。谢谢。我发现这是个问题。我不明白为什么,但当我将请求方法从RKRequestMethodPOST更改为RKRequestMethodAny时,它就开始工作了。实际上,这个请求的类型是POST。好的,这是一个很好的观点,但它不是POST,而是GET,因为您使用的是
getObjectsAtPath
您的答案完全正确。我从文档中漏掉了这个项目。谢谢