Parse を使用してデータを保存しています。私の AppDelegate では、サーバーからすべてのデータを取得して ViewController に共有したいのですが、できません。MainThread は常に収集データ スレッドの前に終了するためです。最初にすべてのデータを取得する方法、またはデータ スレッドが終了するのを待ってからメインスレッドを実行する方法、またはこれを実装する別の方法はありますか。
これは私のコードです:
@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;
}
私の出力
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
「外部ブロック作成者 = 4」が欲しいのですが >.<