別のタスクを実行する前に、クエリが (成功したかどうかにかかわらず) 終了したことを確認するにはどうすればよいですか。
これが私のviewDidLoadです...最後にあるこのコード行
NSLog(@"tweets Array %@",self.tweetsArray);
tweetsArray が空であることを示しています
ただし、上記のブロックの同じコード行は、配列がいっぱいであることを示しています。
出力には、最初の NSLog の前の最後の NSLog も表示されます。
クエリの実行が完了する前に UITableView メソッドを呼び出しているため、シミュレーターでは tableView が空白です。
これに関するヘルプは素晴らしいでしょう。
前もって感謝します... ニック
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.tableView.dataSource = self;
self.tableView.delegate = self;
self.selectString = self.gamesString;
PFQuery *query = [PFQuery queryWithClassName:@"Parse_Storyw"];
[query whereKey:@"searchName" equalTo:self.gamesString];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// Do something with the found objects
for (PFObject *object in objects) {
NSLog(@"%@", object.objectId);
PFQuery *query = [PFQuery queryWithClassName:@"Parse_Story"];
[query getObjectInBackgroundWithId:object.objectId block:^(PFObject *content, NSError *error) {
PFFile *file = [content objectForKey:@"levels"];
[file saveInBackground];
[file getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
NSString *string = [[NSString alloc] initWithData: data encoding: NSMacOSRomanStringEncoding];
self.tweetsArray = [[NSArray alloc] initWithArray:[string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]];
NSLog(@"tweets Array %@",self.tweetsArray);
}];
}];
}
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
self.title = self.selectString;
NSLog(@"tweets Array %@",self.tweetsArray);
}