title: Adding child progress for multiple file download
body: <p>I'm downloading multiple files using AFNetworking 3.0 in my project. I want to show single download progress of all files. I added each child progress of each file download to the parent progress. But it's not working, app crashed. I'm getting the error -</p>
  
  <pre><code>Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '&lt;DownloadManager: 0x7f92e2f6e130&gt;: An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
  Key path: fractionCompleted
  </code></pre>
  
  <p>Here is my download class -</p>
  
  <pre><code>@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 &lt; 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
  </code></pre>