Загружать контроллер представления, даже если один API выходит из строяIOS

Программируем под IOS
Ответить
Anonymous
 Загружать контроллер представления, даже если один API выходит из строя

Сообщение Anonymous »

У меня есть три API, из которых я извлекаю данные и помещаю их в UITableView внутри моего ViewController.m.

Есть ли способ обеспечить загрузку UITableView, если один из веб-сайтов не загружается?

Верно теперь ViewController.m просто не загружается, если все 3 источника не загружаются согласно моему методу.

Вот метод, который я использую:

Код: Выделить всё

- (void)loadOneWithSuccess:(void (^)(RKObjectRequestOperation *operation, RKMappingResult *mappingResult))success
failure:(void (^)(RKObjectRequestOperation *operation, NSError *error))failure {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *tNE = [defaults objectForKey:[NSString stringWithFormat:@"tNE%@", bn]];
NSString *path = [NSString stringWithFormat:@"xx/%@/", tNE];

[self.eObjectManager getObjectsAtPath:path parameters:nil success:success failure:failure];
}

- (void)loadMedia {
self.combinedModel = [NSMutableArray array];
// Here's the #1
[self loadOneWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

[self.combinedModel addObjectsFromArray:mappingResult.array];

// Here's the trick.  call API2 here.  Doing so will serialize these two requests
[self loadTwoWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

[self.combinedModel addObjectsFromArray:mappingResult.array];

// Here's the trick.  call API3 here.  Doing so will serialize these two requests
[self loadThreeWithSuccess:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

[self.combinedModel addObjectsFromArray:mappingResult.array];

[self sortCombinedModel];

[self.tableView reloadData];

} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"No?: %@", error);
}];

} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"No?: %@", error);
}];

} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"No?: %@", error);
}];
}
Поэтому, если API1 не загружается, API2 и API3 все равно будут загружаться и отображаться в UITableView в ViewController.m.

Подробнее здесь: https://stackoverflow.com/questions/270 ... -api-fails
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»