我正在使用以下代码进行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或不做以避免崩溃?
答案 0 :(得分:2)
问题不在于POST,问题是您反复运行映射配置(每次要POST时)。
映射必须是唯一的(确定性的),因此不允许多次运行。你可以每次都删除它们,但这很浪费,所以你应该在创建对象管理器时加载它们一次,然后再不再这样做。通过这种方式,您可以获得最佳的重用效果。