Ios RestKit仅在Post/Put上映射多个根对象
我在不同的资源路径上获取大量对象,并为这些对象设置适当的映射 但是,当我发布一个新对象(如来宾卡)时,它包含其他对象(交互、租户)。因此,响应数据具有多个根对象guestcard/tenants/互动。我选择了这个方法,而不是嵌套序列化响应,因为它更接近于我通常获取和解析事物的方式(作为单独的对象) 如何将其作为一次性映射处理?我想我可以用一种新的块方法,比如-(void)postObject:(id)对象使用block:(void(^)(RKObjectLo)ader*)块Ios RestKit仅在Post/Put上映射多个根对象,ios,restkit,Ios,Restkit,我在不同的资源路径上获取大量对象,并为这些对象设置适当的映射 但是,当我发布一个新对象(如来宾卡)时,它包含其他对象(交互、租户)。因此,响应数据具有多个根对象guestcard/tenants/互动。我选择了这个方法,而不是嵌套序列化响应,因为它更接近于我通常获取和解析事物的方式(作为单独的对象) 如何将其作为一次性映射处理?我想我可以用一种新的块方法,比如-(void)postObject:(id)对象使用block:(void(^)(RKObjectLo)ader*)块 我可以设置一
我可以设置一个匿名映射,只将不同的根键指向正确的类映射吗?因此,当您使用
postObject
或putObject
方法时,RestKit会自动尝试将json结果映射到已发布的sourceObject中。根据Blake的说法,这对于非合作对象是必要的重新定义数据备份对象,这样就不必实例化一个全新的对象
然而,在我的场景中,我试图将3个顶级json键映射到具有核心数据支持对象的现有映射中,这是没有意义的
事实证明,您需要做的是将targetObject
置为零,然后标准的键值编码映射将接手(假设您的根对象在json中的键控正确)
如果仍然需要激发委托方法,可以设置loader.delegate
[objectManager postObject:guestCard usingBlock:^(RKObjectLoader *loader){
loader.targetObject = nil;
loader.delegate = self;
}];