将没有root密钥的对象映射到动态url?

将没有root密钥的对象映射到动态url?

问题描述:

我试图映射以下对象:将没有root密钥的对象映射到动态url?

{"walletAccepted":false,"creditCardTypesAccepted":["visa","mastercard","discover","americanexpress"],"paypalAccepted":false} 

要具有相同属性的对象。但是,ResourcePath是动态的,因为它沿着/ paymentmethods/zone /行:internalZoneCode

我在映射时所做的每一次尝试总是以“映射期间遇到的错误:无法找到对象映射对于keyPath:''“

我认为问题是没有root密钥/密钥路径。我也尝试没有运气以下:

RKURL *rkUrl = [RKURL URLWithBaseURL:[RKClient sharedClient].baseURL resourcePath:[NSString stringWithFormat:@"/paymentoptions/zone/%@", zoneNumber]]; 
RKObjectLoader* loader = [[RKObjectLoader alloc] initWithURL:rkUrl mappingProvider:[RKObjectManager sharedManager].mappingProvider]; 
loader.method = RKRequestMethodGET; 
loader.delegate = self; 

loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[PMZonePaymentMethods class]]; 
[loader send]; 

我发现做到这一点的方法是配置的映射,并添加映射对象管理没有一个关键路径或resourcek

所以像这样:

RKObjectMapping* zonePaymentMethodsMapping = [RKObjectMapping mappingForClass:[PMZonePaymentMethods class]]; 
[zonePaymentMethodsMapping mapKeyPath:@"walletAccepted" toAttribute:@"walletAvailable"]; 
[zonePaymentMethodsMapping mapKeyPath:@"creditCardTypesAccepted" toAttribute:@"cards"]; 
[zonePaymentMethodsMapping mapKeyPath:@"paypalAccepted" toAttribute:@"paypalAvailable"]; 

[[RKObjectManager sharedManager].mappingProvider addObjectMapping:zonePaymentMethodsMapping]; 

,并用它来发出请求:

RKURL *rkUrl = [RKURL URLWithBaseURL:[RKClient sharedClient].baseURL resourcePath:[NSString stringWithFormat:@"/paymentoptions/zone/%@", zoneNumber]]; 
RKObjectLoader* loader = [[RKObjectLoader alloc] initWithURL:rkUrl mappingProvider:  [RKObjectManager sharedManager].mappingProvider]; 
loader.method = RKRequestMethodGET; 
loader.delegate = self; 

loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[PMZonePaymentMethods class]]; 
[loader send];