Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios RestKit仅在Post/Put上映射多个根对象_Ios_Restkit - Fatal编程技术网

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

Ios RestKit仅在Post/Put上映射多个根对象,ios,restkit,Ios,Restkit,我在不同的资源路径上获取大量对象,并为这些对象设置适当的映射 但是,当我发布一个新对象(如来宾卡)时,它包含其他对象(交互、租户)。因此,响应数据具有多个根对象guestcard/tenants/​互动。我选择了这个方法,而不是嵌套序列化响应,因为它更接近于我通常获取和解析事物的方式(作为单独的对象) 如何将其作为一次性映射处理?我想我可以用一种新的块方法,比如-(void)postObject:(id​)对象使用block:(void(^)(RKObjectLo)​ader*)块 我可以设置一

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

但是,当我发布一个新对象(如来宾卡)时,它包含其他对象(交互、租户)。因此,响应数据具有多个根对象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;
        }];