Я хочу реализовать UIAlertView
, который будет показывать, когда [[AFHTTPRequestOperationManager manager] GET:]
начнет выполнять свою работу, и автоматически исчезнет, когда работа будет выполнена. Одна интересная дополнительная функция была бы, если бы я мог отображать UIProgressView
с прогрессом AFHTTPRequestOperation
.
Сейчас я проверяю, есть ли что-нибудь в Core Data, и на основе этого я инициализирую UIAlertView
:
if (![self coreDataHasEntriesForEntityName:@"Group"]) {
downloadingAlert = [[UIAlertView alloc] initWithTitle:@"Pobieranie" message:@"Trwa pobieranie grup" delegate:nil cancelButtonTitle:@"Anuluj" otherButtonTitles:nil, nil];
[self collectData];
} else {
NSError *error;
[[self fetchedResultsController] performFetch:&error];
}
Таким образом, чтобы предотвратить отображение этого предупреждения, когда UITableView
уже заполнен данными. Как видите, я вызываю этот метод [self collectData]
, который выглядит так:
-(void)collectData
{
[downloadingAlert show];
[[AFHTTPRequestOperationManager manager] GET:ALL_GROUPS parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSManagedObjectContext *tempContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
tempContext.parentContext = self.moc;
[tempContext performBlock:^{
// Doing something with responseObject
if (![tempContext save:&error]) {
NSLog(@"Couldn't save: %@", [error localizedDescription]);
}
[self.moc performBlock:^{
NSError *error;
if (![self.moc save:&error]) {
NSLog(@"Couldn't save: %@", [error localizedDescription]);
}
[downloadingAlert dismissWithClickedButtonIndex:0 animated:YES];
[self.writer performBlockAndWait:^{
NSError *error;
if (![self.writer save:&error]) {
NSLog(@"Couldn't save: %@", [error localizedDescription]);
}
}];
}];
}];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Show alert with info about failure
}];
}
Как видите, я программно показываю этот UIAlertView
и закрываю его, когда загрузка завершена и UITableView
перезагружается. Но я понятия не имею, как добавить UIProgressView
или как убрать это UIAlertView
, не используя dismissWithClickedButtonIndex:
. Есть идеи?