我正在尝试POST一个对象(类CompletedTest),然后使用RestKit 10.0解析返回的对象(类Response)。遗憾的是,RestKit尝试将返回的对象映射到已发布对象的类。
如果我使用此代码:
[[RKObjectManager sharedManager] postObject:tempCA delegate:self];
我收到错误:
Expected an object mapping for class of type 'CompletedAssessment', provider returned one for 'Response'
如果我使用块代码指定映射路径
[[RKObjectManager sharedManager] postObject:tempCA usingBlock:^(RKObjectLoader* loader) {
loader.delegate = self;
loader.objectMapping = [PLMapper responseMapper];
}];
我得到同样的错误;
谷歌搜索,似乎添加到块应该有帮助:
loader.targetObject = nil;
这确实消除了错误,但没有映射任何对象 - 返回的数组包含0个对象。
我的映射器都包含在一个帮助器类PLMapper中,它包含大约20个映射器,所有这些映射器都在其他上下文中工作,包括其他上下文中的responseMapper。
有趣的是,如果我将objectMapping代码从块中取出:
[[RKObjectManager sharedManager] postObject:tempCA usingBlock:^(RKObjectLoader* loader) {
loader.targetObject = nil;
loader.delegate = self;
}];
我在第329行,第11行,断点1.1
中的RestKit RKObjectMappingOperations.m中崩溃value = [self.sourceObject valueForKeyPath:attributeMapping.sourceKeyPath];
不确定我在这里做错了什么!非常感谢。