title: Convert network request from synchronous to asynchronous
body: <p>I'm currently doing a synchronous network request to load my app which is not the best way as it blocks the UI.  I'm also using ASIHTTPRequest.  I understand I can just change the line from synchronous to asyncronous, but I think I need to setup a block so that I can trigger the table to reload once the async is completed.</p>
  
  <p>The initial ViewController of my app:</p>
  
  <pre><code>- (void)fetchAppointmentsForVisibleDate {
      self.appointmentArray = [DrChronoDataSource getTodayData:self.visibleDate];
  
      NSMutableArray *array = [NSMutableArray arrayWithCapacity:50];
      for (NSDictionary *appointment in self.appointmentArray)
      {
          [array addObject: [NSString stringWithFormat:@"%@: %@", [appointment objectForKey:@"scheduled_time"], [appointment objectForKey:@"patient"]]];
      }
      self.listData = array;
      [self.appointmentTableView reloadData];
  }
  </code></pre>
  
  <p>In my app's dataSource class:</p>
  
  <pre><code>+ (NSMutableArray*)getTodayData:(NSDate*)today
  {
          NSURL *url = myURL here 
          ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];
          [request setPostValue:[dateFormat stringFromDate:today] forKey:@"target_date"];
  
          [request startSynchronous];
  
          NSError *error = [request error];
          NSString *responseString;
          if (!error) {
              responseString = [request responseString];
          } else {
              return NULL;
          }
          return [responseString JSONValue];
  }
  </code></pre>