【发布时间】:2014-04-14 18:47:48
【问题描述】:
在我的 AppDelegate 中,我正在创建这样的映射:
NSDictionary *basicResponseObjectMapping = @{
@"success" : @"Success",
@"error" : @"Error",
};
NSDictionary *reviewObjectMapping = @{
@"text" : @"Text",
};
[manager addResponseDescriptor:ratingResponseDescriptor];
RKObjectMapping *addRatingMapping = [RKObjectMapping mappingForClass:[BasicResponse class]];
[ratingMapping addAttributeMappingsFromDictionary:basicResponseObjectMapping];
RKResponseDescriptor *addRatingResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:addRatingMapping
method:RKRequestMethodAny
pathPattern:@"/api/ratepoint"
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[manager addResponseDescriptor:addRatingResponseDescriptor];
RKObjectMapping *addRatingRequestMapping = [RKObjectMapping mappingForClass:[Review class]];
[addRatingRequestMapping addAttributeMappingsFromDictionary:reviewObjectMapping];
RKRequestDescriptor *addRatingRequestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[addRatingRequestMapping inverseMapping]
objectClass:[Review class]
rootKeyPath:nil
method:RKRequestMethodAny];
[manager addRequestDescriptor:addRatingRequestDescriptor];
这些是我的课程:
@interface BasicResponse : NSObject
@property(nonatomic) NSNumber *Success;
@property(nonatomic) NSString *Error;
@end
@interface Review : NSObject
@property(nonatomic) NSString *Text;
@end
我这样发送我的请求:
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager setRequestSerializationMIMEType:RKMIMETypeFormURLEncoded];
Review *review = [[Review alloc]init];
[review setText:reviewTextView.text];
[manager postObject:review
path:[NSString stringWithFormat:@"/api/ratepoint/%@?pid=%@&stars=%@", sid, actualPlace.Id,[NSString stringWithFormat:@"%d", [ratingControl rating]]]
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{
NSArray* statuses = [mappingResult array];
BasicResponse *basicResponse = statuses.firstObject;
}
failure:^(RKObjectRequestOperation *operation, NSError *error)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}];
当我查看来自 RESTKit 的日志记录时,请求映射是可以的。但我对响应映射有问题。我想我一切都还好,但我得到了这样的回应:
{"success":0,"error":"Some error"}
这应该由我的映射映射,但不是。这里是log trace in pastebin。
【问题讨论】:
标签: ios restkit restkit-0.20