Добавление хода для загрузки нескольких файлов

Я загружаю несколько файлов, используя AFNetworking 3.0 в моем проекте. Я хочу показать одно скачивание всех файлов. Я добавил, что каждый прогресс каждого файла загружается в исходный процесс. Но это не работает, приложение разбилось. Я получаю ошибку –

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '<DownloadManager: 0x7f92e2f6e130>: An -observeValueForKeyPath:ofObject:change:context: message was received but not handled. Key path: fractionCompleted 

Вот мой класс загрузки –

 @interface DownloadManager () @property (nonatomic, strong) NSProgress *progress; @property (nonatomic, strong) Settings *settings; @property (nonatomic, strong) DocumentDirectory *documentDirectory; @end @implementation DownloadManager - (instancetype)init { self = [super init]; if (self) { self.progress = [NSProgress new]; [self.progress addObserver:self forKeyPath:@"fractionCompleted" options:NSKeyValueObservingOptionNew context:NULL]; self.settings = [Settings new]; self.documentDirectory = [DocumentDirectory new]; } return self; } - (void) dealloc { [self.progress removeObserver:self forKeyPath:@"fractionCompleted"]; } //Download the file from remote server in the document directory as Zip format - (void) downloadCarContents:(NSArray *)urlArray forContent:(NSArray *)contentArray { AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; self.progress.totalUnitCount = urlArray.count; self.progress.completedUnitCount = 0; for (NSInteger i = 0; i < urlArray.count; i++) { NSString *destinationPath = [self.documentDirectory getDownloadContentPath:contentArray[i]]; NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlArray[i]]]; NSURLSessionTask *task = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) { return [NSURL fileURLWithPath:destinationPath]; } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) { }]; NSProgress *childProgress = [manager downloadProgressForTask:task]; [self.progress addChild:childProgress withPendingUnitCount:1]; NSLog(@"Total downloaded : %f", self.progress.fractionCompleted * 100.0); [task resume]; } } @end 

Вы забыли реализовать метод observeValueForKeyPath:ofObject:change:context: method.

 - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *, id> *)change context:(void *)context { if ([keyPath isEqualToString:@"fractionCompleted"]) { // process value } } 
  • CGImageCreateWithMaskingColors не работает с iOS7
  • Google API Client GTMHTTPUploadFetcher дублируется
  • UISearchBar появляется на * внизу * UITableView
  • Аргумент массива аргументов Objective C (AJNMessageArgument)
  • предотвращать перезагрузку uitableView
  • Наблюдатель в NSNotification (itemDidFinishPlaying) СЛУЧАЙНО дважды звонить
  • Совместное использование изображений / видеороликов в других приложениях через UIActivityViewController показывает общие элементы дважды в iOS
  • Reactive Cocoa - rac_textSignal UITextView не вызывается при программной настройке текста
  • Микшины или множественное наследование в Objective-C?
  • Проверьте, присутствует ли сертификат SSL в iOS?
  • Задержка при отображении UIButtons после представления SKScene?
  • Interesting Posts

    Разделение классов между существующим проектом iPhone и расширением Watch Kit

    UIManagedDocument может читать только документы, которые являются файловыми пакетами

    Локализация сообщений динамического множественного существительного (например, «5 элементов обработано») на iPhone с использованием Objective-C

    Неверное отображение атрибута UILabel

    Источниковая структура ракурса раскадровки

    dispatch_get_global_queue vs dispatch_get_main_queue

    Как показать предупреждение после установки приложения в устройстве ios

    iOS – распознаватель жестов translationInView

    Подчеркните текст кнопки в быстром

    Раскадровка iOS: цвет панели состояния

    Панель быстрого доступа iOS: добавьте пользовательское предложение

    Почему hitTest: withEvent: вызывается три раза для каждого касания?

    Журналы с ошибками в iPhone не отображают корректно и являются двойными интервалами

    Каковы видеоформаты, поддерживаемые MPMoviePlayerController на iPad?

    Можно ли переименовать приложение iOS только в одном языке?

    Давайте будем гением компьютера.