我在不同的资源路径中获取大量对象,并为这些对象设置适当的映射。
但是,当我发布新对象(例如访客卡)时,它包含其他对象(交互、租户)。因此,响应数据具有多个根对象 guestcard/tenants/交互。我选择此方法而不是嵌套序列化响应,因为它更符合我通常获取和解析事物的方式(作为单独的对象)。
如何将其作为一次性映射来处理?我想我可以使用一种新的 block 方法来做到这一点,例如 - (void)postObject:(id)object usingBlock:(void(^)(RKObjectLoader *))block
我可以设置一个匿名映射,将各种根键指向正确的类映射吗?
最佳答案
事实证明,当您使用 postObject
或 putObject
方法时,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/