RestKit仅在Post / Put上映射多个根对象

时间:2012-03-25 22:33:45

标签: ios restkit

我在不同的资源路径上获取大量对象,并为这些路径设置适当的映射。

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

如何将其作为一次性映射来处理?我想我可以使用一种新的块方法来做某些事情,比如 - (void)postObject:(id)object usingBlock:(void(^)(RKObjectLo ader *))block

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

1 个答案:

答案 0 :(得分:1)

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

然而,在我尝试将3个顶级json密钥映射到具有核心数据支持对象的现有映射的情况下,它没有意义。

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

如果仍需要触发委托方法,可以设置loader.delegate

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