私は現在、RKErrorMessageクラスを使用して、次のようにサーバーからのエラーメッセージをマップしています。
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
[errorMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:@"message" toKeyPath:@"errorMessage"]];
RKResponseDescriptor *errorResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:errorMapping
pathPattern:nil
keyPath:@"error"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassClientError)];
しかし、今度は、サーバーから追加のパラメーター、たとえばエラータイトル(またはその他の問題)をマップしたいと思います。私のJSONは次のようになります:
{
"error":{
"title":"This is the error title"
"message":"This is the error message",
}
}
アプリがサーバーにアクセスしているときに問題が発生した場合に、これらのエラーメッセージの一部をUIAlertViewsに直接マップできるという考え方です。これはエラーメッセージだけですでに実行できますが、タイトルを追加するとUIAlertViewにうまく適合するようです。
RKErrorMessageクラスを見ると、errorMessageとuserInfoの2つのパラメーターしかないことがわかります。どうすればこれを行うことができますか?
更新: RKErrorMessageでこれを実行しようとしている理由は、RestKitのget / post / put/etcメソッドの失敗ブロックに渡されたNSErrorに自動的にマップされるためです...これは非常に便利です。
[objectManager getObjectsAtPath:@"/api/somethingsomething/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
}];