title: Running NSURLSession completion handler on main thread
body: <p>I am using a NSURLSession to get the values to populate a TableView.  I am updating the TableView in the completion handler, but using <code>[[NSThread currentThread] isMainThread]</code> has shown me that the completion handler isn't running in the main thread.  Since I should only updating the UI from the main thread, I know this isn't correct.  Is there a way to trigger an action on the main thread from the completion handler?  Or is using a NSURLSession the wrong way to go about this?</p>
  
  <pre><code>NSURLSession *session = [NSURLSession sharedSession];
  [[session dataTaskWithURL:[NSURL URLWithString:@"http://myurl"]
          completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
              NSError *jsonError = nil;
              NSArray* jsonUsers = [NSJSONSerialization JSONObjectWithData:data options:0 error:&amp;jsonError];
              if (jsonError) {
                  NSLog(@"error is %@", [jsonError localizedDescription]);
                  // Handle Error and return
                  return;
              }
              self.userArray = jsonUsers;
              [self.userTableView reloadData];
              if ([[NSThread currentThread] isMainThread]){
                  NSLog(@"In main thread--completion handler");
              }
              else{
                  NSLog(@"Not in main thread--completion handler");
              }
  }] resume];
  </code></pre>