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

标签 ios restkit

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

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

如何将其作为一次性映射来处理?我想我可以使用一种新的 block 方法来做到这一点,例如 - (void)postObject:(id​)object usingBlock:(void(^)(RKObjectLoader *))block

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

最佳答案

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

但是,在我尝试将 3 个顶级 json 键映射到具有核心数据支持对象的现有映射的场景中,这是没有意义的。

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

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

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

关于ios - RestKit 仅在 Post/Put 上映射多个根对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864695/

相关文章:

ios - 将 UISpec 与 API 数据结合使用的技巧和教程

database - 维护和更新IOS客户端与服务器之间的脱机更改的最佳方法是什么?

ios - 管理 NSURLConnection

ios - indexpath 行未准备好 segue 以进行详细信息披露

ios - 如何使 incall 叠加层不向下插入 ui

ios - RestKit关系映射

ios - 仅当存在单个日历帐户时才会出现 EKCalendarChooser 问题

ios - Parse.com验证电子邮件并重定向到App

ios - 休息套件 : addSQLitePersistentStoreAtPath produce extra record

ios - RestKit,问题和标签之间的多对多关系,如 Stackoverflow api