我正在尝试发布一个对象(类 CompletedTest),然后使用 RestKit 10.0 解析返回的对象(类响应)。可悲的是,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];
不知道我在这里做错了什么!非常感谢帮助。