我无法弄清楚如何纠正从RestKit 0.10升级到0.20后我遇到的错误......有人可以帮忙吗?
谢谢!
ViewController.m
- (void)viewDidLoad {
// Wain, I added this RKResponseDescriptor
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor
responseDescriptorWithMapping:[Feed mapping] method:RKRequestMethodAny
pathPattern:nil keyPath:@"springs" statusCodes:nil];
// These 4 lines has errors and needs to be fixed
// No visible @interface for 'RKObjectManager' declares the selector 'loader'
[[RKObjectManager sharedManager]
loadObjectsAtResourcePath:@"/springs/?apikey=xxx"
usingBlock:^(RKObjectLoader *loader) {
loader.onDidLoadObjects = ^(NSArray *objects){
springs = objects;
// These 2 lines have errors that need to be fixed
// Use of undeclared identifier 'loader'
[loader.mappingProvider setMapping:[Spring mapping] forKeyPath:@"springs"];
loader.onDidLoadResponse = ^(RKResponse *response){
}
我看到了GitHub的帮助页面,但我无法自己解决这个问题。真的很感激!
的更新 的
好的我想我知道如何更换第一行,只需使用
[RKObjectManager.sharedManager getObjectsAtPath:@"/springs/?apikey=xxx" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult)
...
但我仍然不确定如何处理loader.onDidLoadObjects = ^(NSArray *objects)
部分!
答案 0 :(得分:1)
您显示的0.1x代码会下载响应数据,然后调用您的回调询问如何处理它,因此您在回调中提供映射。
0.2x并不像那样工作。它在您发出请求之前将所有映射作为配置,并且映射与响应描述符相关联(因此RestKit可以搜索所有配置选项并应用匹配的所有内容)。
因此,您需要先进行配置并将其应用到RKObjectManager
,然后才能实际获得'来自服务器的任何内容。