Restkit 无法使用适当的映射
Restkit fails to use appropriate Mapping
我正在使用 Restkit 0.26.0 映射 JSON 多层,这个关键路径会导致问题:
productColorImages: [
{
id: 10,
productId: "232",
color: "green",
url: "exampleURL.com"
},
{
id: 11,
productId: "232",
color: "red",
url: "exampleURL.com"
},
{
id: 12,
productId: "232",
color: "blue",
url: "exampleURL.com"
}
],
我的映射
RKObjectMapping *transferProductColorImageMapping = [RKObjectMapping mappingForClass:[TransferProductColorImage class]];
[transferProductColorImageMapping addAttributeMappingsFromDictionary:@{ @"identifier" : @"id",
@"URL" : @"URL",
@"productId" : @"productId",
@"color" : @"color"
[getProductPageMapping
addRelationshipMappingWithSourceKeyPath:@"productColorImages" mapping:transferProductColorImageMapping];
目的地class
@interface TransferProductColorImage : NSObject
@property (nonatomic) NSNumber * identifier; // Mapps to id ;int 64
@property (nonatomic) NSString * URL;
@property (nonatomic) NSString * productId;
@property (nonatomic) NSString * color;
问题是生成的对象是正确的class但是属性没有填充。
我在日志中搜索并找到了这个:
2016-05-30 17:42:24.007 thebrandsapp[20697:7047455] T restkit.object_mapping:RKMappingOperation.m:1173 Performing mapping operation: <RKMappingOperation 0x7f9e3b9c11e0> for 'TransferProductColorImage' object. Mapping values from object {
color = green;
id = 10;
productId = 232;
url = "exampleURL.com";
} to object <TransferProductColorImage: 0x7f9e3b846d60> with object mapping (null)
在模型对象上,productColorImages 是一个 NSArray:
@property (nonatomic) NSArray <TransferProductColorImage *> * productColorImages;
这很奇怪,因为。如果映射为空,Restkit 如何知道要使用什么映射。是否有任何原因可以将对象映射设置为空?
更新:我发现标识符和颜色 属性 映射正确,标识符和 url 映射不正确。
我将 URL 属性 更改为小写:"url" 并完全按照我之前所做的那样映射它并且它有效。好像全大写的 属性 名字扔给了 RestKit of.
我搜索了标识符和 ID,现在它们也正确映射了。
我正在使用 Restkit 0.26.0 映射 JSON 多层,这个关键路径会导致问题:
productColorImages: [
{
id: 10,
productId: "232",
color: "green",
url: "exampleURL.com"
},
{
id: 11,
productId: "232",
color: "red",
url: "exampleURL.com"
},
{
id: 12,
productId: "232",
color: "blue",
url: "exampleURL.com"
}
],
我的映射
RKObjectMapping *transferProductColorImageMapping = [RKObjectMapping mappingForClass:[TransferProductColorImage class]];
[transferProductColorImageMapping addAttributeMappingsFromDictionary:@{ @"identifier" : @"id",
@"URL" : @"URL",
@"productId" : @"productId",
@"color" : @"color"
[getProductPageMapping
addRelationshipMappingWithSourceKeyPath:@"productColorImages" mapping:transferProductColorImageMapping];
目的地class
@interface TransferProductColorImage : NSObject
@property (nonatomic) NSNumber * identifier; // Mapps to id ;int 64
@property (nonatomic) NSString * URL;
@property (nonatomic) NSString * productId;
@property (nonatomic) NSString * color;
问题是生成的对象是正确的class但是属性没有填充。
我在日志中搜索并找到了这个:
2016-05-30 17:42:24.007 thebrandsapp[20697:7047455] T restkit.object_mapping:RKMappingOperation.m:1173 Performing mapping operation: <RKMappingOperation 0x7f9e3b9c11e0> for 'TransferProductColorImage' object. Mapping values from object {
color = green;
id = 10;
productId = 232;
url = "exampleURL.com";
} to object <TransferProductColorImage: 0x7f9e3b846d60> with object mapping (null)
在模型对象上,productColorImages 是一个 NSArray:
@property (nonatomic) NSArray <TransferProductColorImage *> * productColorImages;
这很奇怪,因为。如果映射为空,Restkit 如何知道要使用什么映射。是否有任何原因可以将对象映射设置为空?
更新:我发现标识符和颜色 属性 映射正确,标识符和 url 映射不正确。
我将 URL 属性 更改为小写:"url" 并完全按照我之前所做的那样映射它并且它有效。好像全大写的 属性 名字扔给了 RestKit of.
我搜索了标识符和 ID,现在它们也正确映射了。