我需要帮助使用RestKit提取两个API。
我已经建模了API1,并且已经正确拉入。
问题在于试图弄清楚如何将API2拉入ViewController
。
具体来说,我已经设置了模型类,但是在将显示API1 + API2结果的ViewController中,我无法弄清楚如何将其用于viewDidLoad
。< /强>
谢谢!
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// RestKit
NSString *baseURL = @"http://api.firstwebsite.com/v1";
RKObjectManager *manager = [RKObjectManager sharedManager];
if (!manager) {
manager = [RKObjectManager objectManagerWithBaseURLString:baseURL];
manager.client.serviceUnavailableAlertEnabled = YES;
manager.requestQueue.showsNetworkActivityIndicatorWhenBusy = YES;
} else {
manager.client.baseURL = [RKURL URLWithString:baseURL];
}
return YES;
}
WebListViewController.m
@property (strong, nonatomic) NSArray *hArray;
- (void)viewDidLoad
{
[super viewDidLoad];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:
[NSString stringWithFormat:
@"/something/?limit=100&something=%@&something=%@&apikey=xxxx", var1, var2]
usingBlock:^(RKObjectLoader *loader) {
loader.onDidLoadObjects = ^(NSArray *objects){
hArray = objects;
[_tableView reloadData];
};
[loader.mappingProvider setMapping:[Fe mapping] forKeyPath:@"fe"];
loader.onDidLoadResponse = ^(RKResponse *response){
//NSLog(@"BodyAsString: %@", [response bodyAsString]);
};
}];
}
答案 0 :(得分:0)
提醒您的视图控制器(和应用程序委托)远离数据来源的知识 - 他们没有业务知识。应用代表不应该对此有任何了解。视图控制器应该知道数据存在并且可以请求其他数据,但这应该是内部应用程序数据模型,而不是外部模型或数据源。
所以,创建一个数据控制器。通常是单身人士。根据设置标准提供接口以获取/设置/请求/更新数据模型。将所有调用视为与完成回调块异步。
在内部,这个数据控制器可以管理多个对象管理器,每个对象管理器都有不同的基本URL,映射和描述符,但这都是内部知识。