2012-06-13 49 views
1

我正在尝试将RestKit集成到我当前的项目中。 我检索数据的格式:RestKit非kvc对象映射

[ 
    {"id":"1", 
    "name":"john"} 
    {"id":"2", 
    "name":"bob"} 
] 

继在RestKit wiki优秀的教程中,我看到推荐的,符合KVC-全格式是:

{"customers": [ 
    {"id":"1", 
    "name":"john"} 
    {"id":"2", 
    "name":"bob"} ] 
} 

然后,我可以用

[mappingProvider setMapping:customerMapping forKeyPath:@"customers"]; 

不幸的是,我现在不能控制服务器上的数据格式。

在RestKit维基后来,有一个解决我的问题的一部分:“映射没有KVC”我会在加载时将objectMapping与对象关联起来。

[objectManager loadObjectsAtResourcePath:@"/data" objectMapping:customerMapping delegate:self]; 

这是我的问题:维基是为0.9.3。但是此方法在0.10.1中已弃用。是的,它现在仍然有效。

如果此方法已被弃用,并且记住,我没有控制数据保持一致,是什么在这种非KVC情况分配对象映射到一个类的适当方法?

+0

这里的某个人可能对您有很好的回答,但在您等待的时候,我建议您通过https://groups.google.com/forum/#!forum/restkit –

回答

3

我不看好这个,但我相信它在支撑块的过时......这可能工作:

[[RKObjectManager sharedManager] loadObjectsAtResourcePath:@"/data" usingBlock:^(RKObjectLoader* loader) { 
    [loader setObjectMapping:customerMapping]; 
}]; 

而且,当然,使用块来代替委托方法。

+0

在RestKit dev组搜索/张贴好点!我正在找到这个。 – jeswang

+0

谢谢!这确实是我正在寻找的。我需要更习惯使用块... – weissazool

+0

那么,但在0.20.0版本中,我们该如何做到这一点? – jeswang