RESTKit:重用objectManager来制作后续的`POST`

时间:2014-05-16 05:14:14

标签: ios core-data restkit restkit-0.20

我正在使用以下代码进行POST:

[self.objectManager postObject:invitation path:kPath parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
            } failure:^(RKObjectRequestOperation *operation, NSError *error) {
            }];

第一次POST很好;但是,当我尝试后续POST时,我收到以下错误:

 *** 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'*'.'

如何检测是否已添加请求/响应descriptor?重用descriptor的正确做法是什么?还有什么我需要NULL或不做以避免崩溃?

1 个答案:

答案 0 :(得分:2)

问题不在于POST,问题是您反复运行映射配置(每次要POST时)。

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