RestKit:动态属性的映射(不像示例中的NSDictionary)
我在我的iOS项目中使用了RestKit,并且发现了非平凡的问题并找不到解决方案。RestKit:动态属性的映射(不像示例中的NSDictionary)
我有一个JSON:
[{
"name": "restkit",
"downloads": 2
},
{
"name": "restkit",
"rating": 10.0
}]
和数据模型:Model.h
@interface Model : NSObject
@property (nonatomic, strong) NSString * name;
@property (nonatomic, strong) NSString * key;
@property (nonatomic, strong) NSString * value;
@end
在一个阵列中装载这些JSON对象和属性之一是一个 “动态” 属性。 在RestKit我希望能够进行测绘后,有2个记录:
name: "restkit", key: "downloads", value: 2
name: "restkit", key: "rating", value: 10.0
问题:如上面的例子中如何在一开始映射成JSON 2个NSObjects?
这是我如何使用RestKit和解雇请求初始化映射:
// during app initialization I setup mappings:
RKObjectMapping *modelMapping = [RKObjectMapping mappingForClass:[Model class]];
[metricDataMapping mapKeyPath:@"name" toAttribute:@"name"];
...... -- something should go here to support that dynamic stuff
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:metricDataMapping];
// in the view controller when loading data
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:url usingBlock:^(RKObjectLoader *loader){
loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass: [MetricData class]];
loader.onDidLoadObjects = ^(NSArray * objects){
self.dataArray = objects;
};
}];
的问题,就是按键“下载”和“等级”是动态的,它可以是任何文字。我需要解析“即时”并在UI中展示。 Restkit确实支持这种行为,但仅适用于嵌套字典。
我没有使用键值验证由RestKit触发模式,正确的度量键和值设置为通用我想要的钥匙。
您可以使用键值编码来访问动态命名的属性。你做了一个NSDictionary后出了JSON的,这样做:
[self setValue:[dictionary objectForKey:@"downloads"] forKey:@"downloads"];
等
任何线索如何插入RestKit的对象映射? – 2012-08-07 20:07:50
@你究竟是什么意思? – 2012-08-07 20:10:55
我添加了一个片段来展示我如何进行初始化。 – 2012-08-07 20:42:13
什么问题? – 2012-08-07 19:52:16
对不起,添加确切的问题,我有。 – 2012-08-07 19:57:54
任何共鸣为downvoting两个答案?他们是正确的,很好的答案... – 2012-10-16 05:27:06