title: ASIHTTPRequest is not updating the DownloadProgress Delegate
body: <p>I am using ASIHTTPRequest to download a file locally to the iDevice.  </p>
  
  <p>My download code is as follows</p>
  
  <pre><code>ASIHTTPRequest *download = [ASIHTTPRequest requestWithURL: videoUrl];
  [download setCompletionBlock:^{            
      NSLog(@"Download Success");        
      // other code
  }];
  [download setFailedBlock:^{            
      NSLog(@"Download Failed");
      // other code
  }];
  [download setDownloadProgressDelegate: [item progressDelegate]];
  [download startAsynchronous];
  NSLog(@"Start Download of %@", [item name]);
  </code></pre>
  
  <p>The object <code>item</code> holds a reference to a <code>UIProgressView</code> It is show on the screen but never updated.</p>
  
  <p>In an attempt to debug, I subclassed <code>UIProgressView</code> and added the following log</p>
  
  <pre><code>- (void)setProgress:(float)newProgress {        
    NSLog(@"Current Progress : %f", newProgress);
    [super setProgress: newProgress];
  }
  </code></pre>
  
  <p>My Console now shows the progress going from 0.0 to 1.0 over ~50 iterations (nice!) but the uiProgressView doesnt change and at the end the NSLog show 0.5 the default setting for the progress view.</p>
  
  <p>Anyone have an Idea what is happening?</p>
  
  <p>EDIT
  UIProgressView is accessed with this</p>
  
  <pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
     id progressView = [cell viewWithTag:VideoDetailProgressView];
     [VideoDownloadManager queueDownloadOfVideo:video progressDelegate: progressView];
  }
  </code></pre>
  
  <p>I have stepped through and watched it appears to keep the correct reference to the UIProgressView throughout</p>
  
  <p>Edit 
  TableView Methods</p>
  
  <pre><code> // Row display. Implementers should *always* try to reuse cells by setting each cell's reuseIdentifier and querying for available reusable cells with dequeueReusableCellWithIdentifier:
   // Cell gets various attributes set automatically based on table (separators) and data source (accessory views, editing controls)
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  static NSString *detailCellIdentifier = @"VideoDetailCell";
  static NSString *categoryCellIdentifier = @"VideoCategoryCell";
  UITableViewCell *cell = nil;
  bool isCategorical = [[self.videoList objectAtIndex: indexPath.row] objectForKey:@"parentName"];
  
  
  if(isCategorical)
  {
      cell = [tableView dequeueReusableCellWithIdentifier:categoryCellIdentifier];
  }
  else
  {
      cell = [tableView dequeueReusableCellWithIdentifier:detailCellIdentifier];
  }
  
  if (cell == nil &amp;&amp; !isCategorical) {
      [[NSBundle mainBundle] loadNibNamed:@"VideoDetailCell" owner:self options:nil];
      cell = self.videoDetailCell;
  
  
      UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(5.0, 10.0, 46.0, 46.0)];
      [cell addSubview:imageView];
      imageView.hidden = !self.canEdit;
      imageView.tag = VideoDetailsFavoriteButton;
      [imageView release];        
  
  
      self.videoDetailCell = nil;
  }
  else if(cell == nil &amp;&amp; isCategorical)
  {
      //Different cell
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:categoryCellIdentifier] autorelease];
  }
  [cell setBackgroundColor:[UIColor clearColor]];
  return cell;
  }
  
  
  
  // Display customization
  - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
  NSDictionary *object = [self.videoList objectAtIndex:indexPath.row];
  bool isCategorical = [[self.videoList objectAtIndex: indexPath.row] objectForKey:@"parentName"];
  
  if(isCategorical) {
      cell.textLabel.textColor = [UIColor whiteColor];
      cell.textLabel.text = [object objectForKey:@"name"];
  
      NSUInteger videoCount = [[Videos sharedVideos] countById: [object objectForKey:@"name"]];
      cell.detailTextLabel.textColor = [UIColor whiteColor];
      cell.detailTextLabel.text = [NSString stringWithFormat: @"%d videos", videoCount];
  }
  else
  {
      [[cell viewWithTag:VideoDetailCellTitle] setValue:[object objectForKey:@"name"] forKey:@"text"];
      [[cell viewWithTag:VideoDetailCellSubtitle] setValue:[object objectForKey:@"dateAdded"] forKey:@"text"];
      [[cell viewWithTag:VideoDetailCellDuration] setValue:[object objectForKey:@"duration"] forKey:@"text"];
  
      UIHTTPImageView *asyncImage = (UIHTTPImageView *)[cell viewWithTag:VideoDetailCellImage];
      NSURL *thumbUrl = [NSURL URLWithString:[NSString stringWithFormat: @"%@%@", kRootUrlPath, [object objectForKey:@"image"]]];
      [asyncImage setImageWithURL:thumbUrl placeholderImage: [UIImage imageNamed: kLoadingImage]];
      asyncImage.clipsToBounds = YES;
  
      UIImageView *editButton = (UIImageView *)[cell viewWithTag:VideoDetailsFavoriteButton];
  
      if ([VideoDownloadManager isQueued: [object objectForKey: @"name"]]) {
          [[cell viewWithTag:VideoDetailCellSubtitle] setHidden:YES];
          [[cell viewWithTag:VideoDetailProgressView] setHidden:NO];
      } else {
          [[cell viewWithTag:VideoDetailCellSubtitle] setHidden:NO];
          [[cell viewWithTag:VideoDetailProgressView] setHidden:YES];
      }
  
      if ([VideoDownloadManager isFavorites: [object objectForKey: @"name"]] || [VideoDownloadManager isQueued: [object objectForKey: @"name"]]) {
          editButton.image = [UIImage imageNamed: kFavoritesHighlighted];  
      } else {
          editButton.image = [UIImage imageNamed: kFavoritesEmpty];  
      }
  
   }
  }
  </code></pre>