【发布时间】:2014-06-25 19:26:46
【问题描述】:
我的问题与RestKit: mapping JSON array of strings 非常相似,只是它特定于 RestKit 0.09。我已经查看了其他几个问题,但仍然卡住了。
由于我无法控制的原因,我无法升级到 RestKit 0.20。我正在使用的 JSON 是:
{
"brands":[
"AN",
"UO",
"FP",
"TR",
"BN"
],
"meta":{
"message":"Current Registry Configuration."
},
"event_types":[
"WEDDING",
"ANNIVERSARY",
"BIRTHDAY",
"HOUSEWARMING",
"SPECIAL OCCASION"
],
"links":[
]
}
我能够很好地映射“元”(和其他几个域)对象。但我无法映射“event_types”,也不需要“品牌”或“链接”。
我目前的代码如下:
+ (void) addElementMappings:(RKObjectMapping *)mapping
{
if ([[self superclass] respondsToSelector:@selector(addElementMappings:)]) {
[[self superclass] performSelector:@selector(addElementMappings:)
withObject:mapping];
}
[mapping mapKeyPath:@"event_types"
toAttribute:@"eventType"];
RKObjectManager* objectManager = [RKObjectManager sharedManager];
if (![objectManager.mappingProvider mappingForKeyPath:@"event_types"]) {
[objectManager.mappingProvider setMapping:mapping
forKeyPath:@"event_types"]; // for KVC path
}
}
并且 eventType 是一个 NSArray(我也尝试将其定义为 NSString - 结果与下面相同)。
按原样,代码会引发异常“此类与键 event_types 的键值编码不兼容。”
如果我将 mapKeyPath 从 @"event_types" 更改为 nil(类似于 0.20),我会收到异常“无法定义将元素名称映射到的元素”。
如果我完全省略 [mapping mapKeyPath:toAttribute],没有例外,但我当然只得到元对象,而不是 event_types。
在 RestKit 0.09 中,如何在没有键的情况下映射属性?
【问题讨论】: