从 Restkit 获取错误描述

Posted

技术标签:

【中文标题】从 Restkit 获取错误描述【英文标题】:Getting Error Descriptions From Restkit 【发布时间】:2012-11-22 09:56:12 【问题描述】:

当我的 Web 服务返回错误时,我想显示与响应一起发回的错误消息。我在 RestKit 中找不到任何方法。我尝试设置对象管理器的错误映射属性,并使用以下建议:

Restkit json error response msg from server

但这对我不起作用。一方面,RKErrorMessage 似乎不再存在。

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

在 RestKit 上试试这个~> 0.22.0

// Setup error mapping
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping addPropertyMapping: [RKAttributeMapping attributeMappingFromKeyPath:@"errorDescription" toKeyPath:@"errorMessage"]];
RKResponseDescriptor *errorResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:errorMapping
                                                                                             method:RKRequestMethodAny
                                                                                        pathPattern:nil
                                                                                            keyPath:nil
                                                                                        statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError)];
[[RKObjectManager sharedManager] addResponseDescriptor:errorResponseDescriptor];

【讨论】:

【参考方案2】:

在 v.20 中,您必须做两件事:

首先,导入 RKErrorMessage.h 文件:

#import <RestKit/RKErrorMessage.h>

然后,将错误映射添加到您的 objectManager:

RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
    [errorMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:@"error" toKeyPath:@"errorMessage"]];
    [objectManager addResponseDescriptor:[RKResponseDescriptor responseDescriptorWithMapping:errorMapping pathPattern:nil keyPath:@"error" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError)]];

【讨论】:

以上是关于从 Restkit 获取错误描述的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 0.20 无法从服务器获取数据

从 RestKit .20.3 获取 HTTP 状态描述

使用 RestKit 0.2 从 CoreData 获取本地数据

在 RestKit 中使用 RKObjectManager 从 CoreData 获取

CoreData & RestKit - 从多个来源获取相同的实体类型

Restkit:从核心数据获取到服务器的 POST 对象数组