title: Dispatch_async stops UITableView reloading
body: <p>I have a case where I'm reading the contents of UITableview with custom cell's subview inside a dispatch_async() as below:</p>
  
  <pre><code>dispatch_async(myQueue, ^ {
      [self filterArrays];
      [self updateSlotData];
  
  } );
  </code></pre>
  
  <p>Inside the updateSlotData: I'm trying to access the uitableviewcell's subview as below:</p>
  
  <pre><code>for (int i = 1 ; i &lt;= [slotTable numberOfRowsInSection:0]; i++) {
      SlotDataCell *cell = (SlotDataCell *)[slotTable cellForRowAtIndexPath:[NSIndexPath indexPathForItem:i-1 inSection:0]];
      NSLog(@"iterating inside %i %i %i",[cell.intTF.text length],[cell.toTF.text length],[cell.fromTF.text length]);
  
      if(![cell.intTF.text length] || ![cell.toTF.text length] || ![cell.fromTF.text length]){
  
          outdatedTF = [NSString stringWithFormat:@"Slot %i timing",i];
          newSlot = false;
          return NO;
  
      }
  
  }
  </code></pre>
  
  <p>On calling the reload data: 
     isDBSelected = false;
      addMode =false;
      [slotTable reloadData];</p>
  
  <pre><code>-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  
  
  
  if(tableView == slotTable){
      if(isDBSelected){
  
          if(addMode){
  
              return [countArray count] + 1;
          }else{
  
  
              return  [countArray count];
          }
      }else{
          NSLog(@"new template creation started");
          return 1;
      }
  }
    return  0;
  }
  </code></pre>
  
  <p>The table reloads with the first row being initialised to nil. The other rows doesn't seem to disappear. Expected result: Only one row is created.</p>