Можно ли мне заполнить один UITableView двумя отдельными веб-API? Я уверен, что есть, но не могу этого понять.
В настоящее время я отлично использую один веб-API; но мне нужно извлечь из другого, а затем объединить их в один UITableView.
(я использую RestKit)
(Второй API, который я пытаюсь интегрировать, — это Instagram, он будет извлекать изображения/текст из учетной записи пользователя)
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
- (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]);
};
}];
}
Я предполагаю, что мне нужно будет сделать что-то другое в AppDelegate.m с помощью baseURL, поскольку у него будет два разных базовых URL-адреса.
Я предполагаю, что мне нужно будет сделать что-то другое в AppDelegate.m с baseURL, поскольку у него будет два разных базовых URL-адреса.
p>
При необходимости будет опубликован дополнительный код!
РЕДАКТИРОВАТЬ
За ответ alexandresoli вот что я обновил, но все еще нуждаюсь в помощи на:
WebListViewController.m
@property (strong, nonatomic) NSMutableArray *array;
@synthesize array;
- (void)callBothURLs {
// Call both #1 and #2 URL, not sure what specific code goes here
}
- (void)viewDidLoad {
[self callBothURLs];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// This is what I currently have, was pulling from a `Headlines` `NSArray` from web #1
return headlinesArray.count;
// I believe I need to change it to this next line...
//return array.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Not sure what to put here with the new `NSMutableArray`
}
РЕДАКТИРОВАНИЕ 2
У меня уже настроено сопоставление объектов для первого веб-сайта, поэтому я могу легко это сделать часть API Instagram. Кажется, все мои путаницы/проблемы связаны с WebListViewController. В любом случае, вот пример сопоставления.
Mapping.h
@interface Mapping : NSObject
@property (nonatomic, strong) Links *links;
@property (nonatomic, strong) NSString *headline;
@property (nonatomic, strong) NSArray *images;
+ (RKObjectMapping *) mapping;
@end
Mapping.m
@implementation Mapping
+ (RKObjectMapping *)mapping {
RKObjectMapping *objectMapping = [RKObjectMapping mappingForClass:[self class] usingBlock:^(RKObjectMapping *mapping) {
[mapping mapKeyPathsToAttributes:
@"headline", @"headline",
nil];
[mapping hasMany:@"images" withMapping:[Images mapping]];
}];
return objectMapping;
}
@end
Подробнее здесь: https://stackoverflow.com/questions/217 ... m-two-apis