2012-03-25 51 views
0

我在单独的资源路径上获取大量对象,并为这些对象设置适当的映射。RestKit仅在Post/Put上映射多个根对象

但是,当我发布一个新的对象(如guest-card)时,它包含其他对象(交互,租户)。因此,响应数据具有多个根对象访客卡/租户/交互。我选择了这种方法,而不是嵌套序列化的响应,因为它更接近于我通常获取和解析事物的方式(作为单独的对象)。

我该如何处理一次映射?我想我可以以某种方式使用其中一种新的块方法来执行此操作,例如 - (void)postObject:(id)object usingBlock:(void(^)(RKObjectLo ader *))块

我可以设置一个匿名映射,只是将各种根键指向正确的类映射?

回答

1

因此,事实证明,当您使用postObjectputObject方法时,RestKit会自动尝试将json结果映射到已发布的sourceObject。每Blake,这对于非Core Data支持的对象是必需的,这样您就不必实例化一个全新的对象。

但是,在我试图将3个顶级json键映射到现有的具有核心数据支持对象的映射中的情况下,它没有任何意义。

事实证明,你需要做的是清除targetObject,然后标准的键值编码映射将接管(假设你的根对象在json中被正确键入)。

如果您仍需要委托方法火灾,你可以设置loader.delegate

 [objectManager postObject:guestCard usingBlock:^(RKObjectLoader *loader){ 
      loader.targetObject = nil; 
      loader.delegate = self; 
     }];