Ios RESTKit:重用objectManager进行后续发布`

Ios RESTKit:重用objectManager进行后续发布`,ios,core-data,restkit,restkit-0.20,Ios,Core Data,Restkit,Restkit 0.20,我使用以下代码发布: [self.objectManager postObject:invitation path:kPath parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { } failure:^(RKObjectRequestOperation *operation, NSError *error) {

我使用以下代码发布:

[self.objectManager postObject:invitation path:kPath parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
            } failure:^(RKObjectRequestOperation *operation, NSError *error) {
            }];
第一次就可以了;但是,当我尝试后续的
POST
s时,会出现以下错误:

 *** Assertion failure in -[RKObjectManager addRequestDescriptor:], /Users/User/Documents...../Code/Network/RKObjectManager.m:766
2014-05-15 22:07:43.103 App[68071:60b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Cannot add request descriptor: An existing descriptor is already registered for the class 'Entity' and HTTP method'*'.'

如何检测是否已添加请求/响应
描述符
?重用
描述符的正确做法是什么?为了避免崩溃,我还需要取消或不做其他事情吗

问题不在于POST,问题在于您正在重复运行映射配置(每次都要POST)


映射必须是唯一的(确定性的),因此不允许多次运行。您可以每次删除它们,但这是浪费,因此实际上,您应该在创建对象管理器时只加载一次它们,然后不再加载。通过这种方式,您可以获得最佳的重用。

谢谢。有没有办法检查对象是否已经有映射?您不需要-如果您在启动时配置映射,然后不更改它们,那么设计上应该是正确的。我不总是使用相同的对象发布。意思是我有不同的实体。因此,根据我需要发布的实体,我需要更改映射。有没有更好的方法来处理这个问题?将不同类型的对象发布到同一端点?这不是一个很好的rest web服务,它是相同的url,但POST和PUT的映射不同。