RestKit setObjectMapping问题; forKeyPath成功,其中forResourcePathPattern失败

时间:2012-09-10 00:04:35

标签: ios json restkit

这里非常令人困惑的时候在开发项目中添加各种请求。对于目前为止的两个对象setObjectMapping:forResourcePathPattern:工作正常。这些资源模式包括@"customer/login/"@"customer/getDuckStatus/"。无法创建具有正确映射的对象的查询是@"customer/getPondsForDuck/"

// this define is used for object mapping and for creating the query, 
// it can't be a mismatch
#define kResourcePathDuckPond @"customer/getPondsForDuck/"

我在查询中看到的唯一区别是返回的JSON中的keypath对于前两个有效的查询是nil。当keypath为nil并且forResourcePathPattern用于设置对象映射时,objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objectsRKObjectLoaderDelegate方法)接收具有正确映射的有效对象。当keypath为非nil时,使用forResourcePathPattern总是发送didLoadObjects:一个nil对象。

使用

[[RKObjectManager sharedManager].mappingProvider setObjectMapping:duckMapping
                                           forResourcePathPattern:kResourcePathDuckPond];

失败。使用

[[RKObjectManager sharedManager].mappingProvider setObjectMapping:duckMapping
                                                       forKeyPath:@"ponds"];

(其中“ponds”是返回的JSON中给出的keypath)工作正常。

这是规则,forResourcePathPattern会失败,除非keypath为零吗?我想以同样的方式识别我的所有物体。虽然我可以使它工作,但我不喜欢使用一个查询的密钥路径和其他人的资源路径。我想将forResourcePathPattern用于所有内容,因为我无法控制API,而有些查询会返回一个keypath,而有些查询则没有。

0 个答案:

没有答案