title: How to wait for findObjectsInBackgroundWithBlock (in Parse) finish then run the MainThread?
body: <p>I am using Parse to store my data. In my AppDelegate I want to get all my data from server then shared them to my ViewController but I cant do it. Because my MainThread always finish before my collect data thread. Is there any way to get all data first, or wait for the data thread finish then do the Mainthread, or another way to implement this. </p>
  
  <p>This is my code:</p>
  
  <pre><code>@synthesize authors;
  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
      // Override point for customization after application launch.
      [SCategory registerSubclass];
      [Parse setApplicationId:PARSE_APP_ID clientKey:PARSE_CLIENT_KEY];
  
       PFQuery *query = [SCategory query];
  
      // type =1 : programmes
     [query whereKey:@"type" equalTo:@1];
     [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
          if (!error) {
  
              // The find succeeded.
              authors = [[NSMutableArray alloc] initWithArray:objects];
              NSLog(@"inside block author: %d",[authors count]);
         } else {
              // Log details of the failure
              NSLog(@"Error: %@ %@", error, [error userInfo]);
          }
      }];
  
  
  
     NSLog(@"outside block author: %d",[authors count]);
  
          return YES;
      }
  </code></pre>
  
  <p>My Output</p>
  
  <pre><code>2013-11-15 15:00:59.424 Sala[5340:70b] outside block author: 0
  2013-11-15 15:01:00.804 Sala[5340:70b] inside block author: 4
  </code></pre>
  
  <p>I want my "outside block author = 4" but >.&lt;</p>