Objective c 在RestKit for iOS中执行postObject时忽略响应

Objective c 在RestKit for iOS中执行postObject时忽略响应,objective-c,ios,post,wcf-data-services,restkit,Objective C,Ios,Post,Wcf Data Services,Restkit,我正在使用RestKit连接到我们的WCF数据服务 由于响应映射问题,我在使用RKObjectManager的postObject函数添加实体时遇到问题 添加实体时,WCF Data Services返回201状态代码和新添加的实体(作为响应) 是否可以忽略响应,只使用返回的状态代码检查添加是否成功 Ponnu为什么要忽略从服务器返回的新添加的实体?映射该结果有助于保持本地表示与服务器的表示同步。服务器可能覆盖了对象的某些字段,如对象id,您希望跟踪它 如果您有映射错误,可能是因为对POST操作

我正在使用RestKit连接到我们的WCF数据服务

由于响应映射问题,我在使用RKObjectManager的postObject函数添加实体时遇到问题

添加实体时,WCF Data Services返回201状态代码和新添加的实体(作为响应)

是否可以忽略响应,只使用返回的状态代码检查添加是否成功


Ponnu

为什么要忽略从服务器返回的新添加的实体?映射该结果有助于保持本地表示与服务器的表示同步。服务器可能覆盖了对象的某些字段,如对象id,您希望跟踪它

如果您有映射错误,可能是因为对POST操作的响应返回的对象表示与使用GET返回的对象表示不同。 您是否尝试过使用:

-(RKObjectLoader*)postObject:(id)对象映射响应带:(RKObjectMapping*)对象映射委托:(id)委托


而是为返回的数据指定一个更合适的映射?

这里的问题可能是更改REST服务,因此一个简单的解决方案是在postObject调用某个资源路径时忽略对didFailWithError的回调

- (void)objectLoader:(RKObjectLoader *)objectLoader didFailWithError:(NSError *)error {
if ([objectLoader wasSentToResourcePath:@"/rest/api/returns/201" method:RKRequestMethodPOST] && [[objectLoader response] statusCode]==201) {
    NSLog(@"Object created");
} else {
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Communication error"
                                                        message:[NSString stringWithFormat:@"Received status code %d: %@",                                                                                               objectLoader.response.statusCode,                                                                                               error.localizedDescription]                                                           delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alertView show];
}

创建一个简单的RKObjectMapping,它不关心响应中的任何参数

[RKObjectMapping mappingForClass: [NSNull class]];