我正在尝试从API网址(... com / api / login?params ...)映射此响应
{"success":0,"error":"Some error"}
但我无法让它发挥作用。我有这门课:
@interface LoginResponse : NSObject
@property(nonatomic) NSNumber * Success;
@property(nonatomic) NSString * Error;
@end
我在我的AppDelegate.m中(包含其他工作响应描述符):
RKObjectMapping *loginMapping = [RKObjectMapping mappingForClass:[LoginResponse class]];
[loginMapping addAttributeMappingsFromDictionary:@{
@"success" : @"Success",
@"error" : @"Error",
}];
RKResponseDescriptor *loginResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:loginMapping
method:RKRequestMethodAny
pathPattern:@"/login"
keyPath:nil
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[manager addResponseDescriptor:loginResponseDescriptor];
我这样称呼它:
RKObjectManager *manager = [RKObjectManager sharedManager];
[manager getObjectsAtPath:@"/api/login"
parameters:@{@"nickname":@"...",@"password":@"test"}
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
{
NSArray* statuses = [mappingResult array];
}
failure:^(RKObjectRequestOperation *operation, NSError *error)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:[error localizedDescription]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
NSLog(@"Hit error: %@", error);
}];
我得到了这些错误:
Hit error: Error Domain=org.restkit.RestKit.ErrorDomain Code=1001 "No mappable object representations were found at the key paths searched." UserInfo=0x10a2b48d0 {NSLocalizedDescription=No mappable object representations were found at the key paths searched., NSLocalizedFailureReason=The mapping operation was unable to find any nested object representations at the key paths searched: events, points, results
The representation inputted to the mapper was found to contain nested object representations at the following key paths: error, success
This likely indicates that you have misconfigured the key paths for your mappings., keyPath=null, DetailedErrors=(
)}
我无法让它发挥作用。我想看看RestKit的维基,但我想我没事。我的情况只有一些变化,但我想它应该有效。我错了什么?感谢
答案 0 :(得分:1)
您的问题是与您的基本网址相关的路径模式。他们目前不匹配。
我会将韧皮网址设置为:...com/api/
。然后,响应描述符路径模式和获取对象路径都是login
。现在一切都很匹配。
如果基本网址设置为...com
,那么两者的路径模式必须为/api/login
。